新手求助
题目:输入一个字符串,内有数字和非数字字符,例如:12sf s3df4s6@#$dsadd41dfsdf
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,12放在a[0],3放在a[1]......统计共有多少个整数,并输出这些数。
代码如下:
程序代码:#include<stdio.h>
int tongji(char *,int *);
int main(void)
{
char str[50]="\0";
int a[50];
int i,n;
printf("输入一个字符串:");
gets(str);
n=tongji(str,a);
printf("共计%d个数\n",n);
for(i=0;i<n;i++)
printf("%c%5d",i%5?'\0':'\n',a[i]);
printf("\n");
return 0;
}
int tongji(char *p,int *a)
{
int i=0,j=0,t;
while( *(p+i)!='\0' )
{
for( ; *(p+i)<'0' || *(p+i)>'9' ; i++ );
if( *(p+i)=='\0' )
break;
for( t=0 ; *(p+i)>='0' && *(p+i)<='9' ; i++)
t=t*10+*(p+i)-'0';
*(a+j++)=t;
}
return j;
}无错误提示。
运行结果如下:
搞不明白为什么会多出来几个数









你别吓我啊