-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
- 输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。 输入
- 若干行字符串 输出
-
每一个字符串中所有数字的升序排序。每个数字占四个字符位置。使用cout<< setw(4)<< num;
处理完一行字符串换行一次。使用cout<< endl;
样例输入
-
31W 7Q9 2D2 4d t51 X9P
样例输出
-
1 2 2 3 7 9 1 4 5 9
提示
-
1.由于有多组测试数据,要求使用while循环读取输入。如下:
while(cin.getline(str,21))
{
//你的代码
}
2.setw(4)函数需要#include < iomanip >
问题链接:Bailian2888 字符串中的数字
问题分析:(略)程序说明:排序和输出格式是关键。
AC的C++语言程序如下:
/* Bailian2888 字符串中的数字 */
#include <iostream>
#include <algorithm>
#include <ctype.h>
#include <iomanip>
using namespace std;
const int MAXLEN = 20;
int main()
{
char s[MAXLEN + 1];
int i, j;
while(cin.getline(s, MAXLEN + 1)) {
i = j = 0;
while(s[i]) {
if(isdigit(s[i]))
s[j++] = s[i];
i++;
}
s[j] = '\0';
sort(s, s+j);
i = 0;
while(s[i]) {
cout << setw(4) << s[i];
i++;
}
cout << endl;
}
return 0;
}