/* *题目大意: * 输入一行数字,如果我们把这行数字中的‘5’都看成 * 空格,那么就得到一行用空格分割的若干非负整数( * 可能有些整数以‘0’开头,这些头部的‘0’应该被忽略 * 掉,除非这个整数就是由若干个‘0’组成的,这时这个 * 整数就是0)。你的任务是:对这些分割得到的整数, * 依从小到大的顺序排序输出。 *解题思路: * 调用strtok函数来切割,调用atoi来转化为整型即可。 */
View Code
#include <iostream> #include <algorithm> #include <cstring> using namespace std; const int MAXN = 1024; int main(void) { char str[MAXN]; while(scanf("%s", str) == 1) { int ans[MAXN], cnt = 0; char *p = strtok(str, "5"); while(p != NULL) { ans[cnt++] = atoi(p); p = strtok(NULL, "5"); } sort(ans, ans + cnt); for(int i = 0; i < cnt; i++) { if(i == 0) printf("%d", ans[i]); else printf(" %d", ans[i]); } puts(""); } return 0; }