描述
输入一个字符串,内含数字和非数字字符,如:
A123x456.17960?302t ab5876
将其中连续的数字作为一个整数,依次存放在一个整型数组中(假设数组名为a)。如上例所示,将123放在a[0]中,456放在a[1]中,17960放在a[2]中,……..,同时统计整数的个数并输出相关的信息。
输入描述
一行字符串(以回车结束),可含空格
输出描述
输出数据分多行,每行一个数据。其中第一行是字符串中包含的整数个数,从第二行开始依次输出各个整数。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include <bits/stdc++.h> using namespace std; bool is_num(string s){ for(char c:s){ if(!isdigit(c)){ return 0; } } return 1; } int main(){ string in; getline(cin,in); string tmp = ""; string temp = ""; vector<int> ans; in = in+" "; for(int i = 0;i<in.size();i++){ temp.push_back(in[i]); if(is_num(temp)){ tmp.push_back(in[i]); }else{ if(tmp != ""){ ans.push_back(stoi(tmp)); } temp = ""; tmp = ""; } } cout << ans.size() << endl; for(int i:ans){ cout << i << endl; } }
|