编了一个程序,没达到结果,求助!
输入一个字符串,内有数字和非数字字符,如a123x456 17960? 302tab5879将其中连续的数字作为一个整数,依次存放到 一数组中,统计共有多少个字符,并输出这些数!!
程序代码: #include <stdio.h>
#define N 50
int main (void)
{ int i,j=0,k=0,m=0,n=0,b=0,sum=0;
int a[10];
char str[N];
char * p;
gets(str);
printf("\n");
puts(str);
p=str;
for(i=0;i<N;i++)
{ if(*(p+i)>='0'&&*(p+i)<='9')/*判断字符串中的字符是否是0到9之间的数*/
{ a[j]=*(p+i); /*是的话就赋给a数组*/
n=m++; /*n用来存放这一次共有多少个数字*/
k=j++; /*a[k]是用来存放数字的,每存放一个数字,j自加一次*/
}
for(j=0;j<=k;j++)
{ for(m=n;m>0;m--)
a[j]=a[j]*10;
sum+=a[j];
b++;
}
if(!(*(p+i)>='0'&&*(p+i)<='9'))
{ m=0; n=0;j=0;k=0; /*假如当前字符不是数字,就将m,n,j,k归零*/
}
printf("%3d,%3d",sum,b);
}
getch();
}









