输入一个字符串,内有数字和非数字字符,如:ak123x456 17960?302gef4563,将其中连续的数字作为一个整体,依次存放到一数组a中,例如123放入a[0],456放入a[1],… …。编程统计其共有多少个整数,并输出这些数。(假设连续整数小于3276
#include<bits/stdc++.h>
using namespace std;
int a[50];//定义在main函数外边的数组不用初始化
char str[200];//且全局变量存储在堆空间中,局部变量存储在栈空间中,这样不易爆栈
int main()
{
int sum=0,i,j=0;
cin.getline(str,200);//输入字符数组
for(int i=0;i<=200;i++)
{
if(str[i]>='0'&&str[i]<='9')//是数字字符时
sum=sum*10+str[i]-48;//将数字字符转化成数字并相加的到数字和
else//是非数字字符时
{
if(sum)a[j++]=sum;//进行sum的赋值操作并将sum重新赋值为0
sum=0;
}
}
for(i=0;i<j;i++)
{
cout<<a[i]<<endl;
}
cout<<j<<endl;
return 0;
}