新手求助
题目:输入一个字符串,内有数字和非数字字符,例如: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; }
无错误提示。
运行结果如下:
搞不明白为什么会多出来几个数