POJ 2888 字符串中的数字

时间限制: 
1000ms
内存限制: 
65536kB
描述
输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。
输入
若干行字符串
输出
每一个字符串中所有数字的升序排序。每个数字占四个字符位置。使用cout<< setw(4)<< num;
处理完一行字符串换行一次。使用cout<< endl;
样例输入
31W 7Q9 2D24d t51 X9P
样例输出
   1   2   2   3   7   9   1   4   5   9
提示
1.由于有多组测试数据,要求使用while循环读取输入。如下:
while(cin.getline(str,21))
{
//你的代码
}
2.setw(4)函数需要#include < iomanip >
(1)、源代码:
#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>
#include <cstring>
using namespace std;
 
int main(){
                char s[21];
                int i;
                vector<int> v;
 
                while(cin.getline(s, 21)){
                                for(i = 0; i < strlen(s); i++){
                                                if(s[i] >= '0' && s[i] <= '9')
                                                                v.push_back(s[i] - '0');
                                                else
                                                                continue;
                                }
                                sort(v.begin(), v.end());
                                vector<int>::iterator it;
                                for(it = v.begin(); it != v.end(); it++)
                                                cout << setw(4) << *it;
                                v.clear();
                                cout << endl;
                }
}
  
(2)、解题思路:略
(3)、可能出错:略
posted on 2012-05-11 20:12  谷堆旁边  阅读(635)  评论(0编辑  收藏  举报