问题:输入一个字符串,内有数字和非数字字符,如a123x456-17960?302tab5876
将其中连续的数字作为一个整数,依次存入到b数组中,例如,123放到把b[0],456放到b[1]等等,统计共有多少个整数,并输出这些数。
答:
#include<iostream>
using namespace std;
#define N 100
int main()
{
char a[N]={'\0'};
float b[50]={0};
int i,x=0,y=0;
gets(a);
a[N-1]='\0';//防止超出字符个数
for(i=0,y=0;a[i]!='\0';i++)
{
if(a[i]>='0'&&a[i]<='9')
{
b[y]=b[y]*10+(a[i]-48);
x=1;
}else if(x==1&&a[i+1]!='\0')
{
y++;
x=0;
}
}
cout<<"共有"<<y+1<<"个整数,分别是"<<'\n';
for(i=0;i<=y;i++)
{
cout<<b[i]<<" ";
}
}
运行结果:
a123x456-17960?302tab5876
共有5个整数,分别是
123 456 17960 302 5876