整数提取
题目描述:
输入一个字符串,内含数字和非数字字符,如:
A123x456.17960?302t ab5876
将其中连续的数字作为一个整数,依次存放在一个整型数组中(假设数组名为a)。如上例所示,将123放在a[0]中,456放在a[1]中,17960放在a[2]中,........,同时统计整数的个数并输出相关的信息。
输入格式:
一行字符串(以回车结束),可含空格
输出格式:
输出数据分多行,每行一个数据。其中第一行是字符串中包含的整数个数,从第二行开始依次输出各个整数。
样例输入:
A123x456.17960?302t ab5876
样例输出:
5 123 456 17960 302 5876
提示:
学会将一个数字字符序列(数字字符串)转换成一个整数
如"456"-->456
字符串长度不超过100,每个整数在int范围内。
时间限制: 1000ms
空间限制: 12MB
#include <bits/stdc++.h>
using namespace std;
string s,s1,s2;
long long a[1000],p,k,z,t,n,x;
int main() {
cin>>s;
for(int i=0;i<s.size();i++){
if(isdigit(s[i])){
x=x*10+s[i]-'0';
}
else{
if(x!=0)a[++n]=x;
x=0;
}
}
if(x!=0)a[++n]=x;
cout<<n<<endl;
for(int i=1;i<=n;i++)cout<<a[i]<<endl;
}