1.输入一个字符串(不超过50个字符),内有数字和非数字字符 ,如: a

1.输入一个字符串(不超过50个字符),内有数字和非数字字符
,如:
a123x456 17960?302tab5876
将其中连续的数字作为一个整数,依次存放到一数组a中,例如123存放在a[0]中,456存放在a[1]中……统计共有多少个整数,并输出这些数。

#include <stdio.h>
#include "string.h"
int main(void){
    char s[51];
    int d[25],i,j,k;
    printf("Please enter a string, the length <= 50...\ns=");
    if(!gets(s) && strlen(s)>50){
        printf("Input error, exit...\n");
        return 0;
    }
    for(j=i=0;s[i];i++)
        if(s[i]>='0' && s[i]<='9'){
            sscanf(s+i,"%d%n",d+j++,&k);
            i+=k-1;
        }
    printf("A total of %d integer(s): ",j);
    for(i=0;i<j;printf(i<j-1 ? "%d " : "%d\n",d[i++]));
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-09
#include <iostream.h>
#include <string>
void main()
{
int e=1,flag=0,j=0,digit=0,k=0,f,h=0,a[10],i,n=0;
char b[40];
cin>>b;
for(i=0;i<strlen(b);i++)
{
while((b[i]>='0')&&(b[i]<='9'))
{
flag=1;
digit=digit*10+b[i]-'0';
i++;
}
if(flag==1)
{
a[n++]=digit;
digit=0;
flag=0;
}

}
for(i=0;i<n;i++)
cout<<a[i]<<endl;本回答被网友采纳
相似回答