这个函数为什么不对/?
题目是:输入一个字符串,内涵数字和非数字字符。将其中连续的数字作为一个证书,依次村放到数组b中,例如123存放在b[0],456放在b[1]。。。。统计共有多少个整数,并输出。。。我做的答案是:
#include<stdio.h>
void main()
{
char a[20],*q;
int b[20];
int s,i,t=0,j=0;
printf("write:");
gets(a);
q=a;
for(i=0;q!='\0';i++,q++)
{if ((*q>='0')&&(*q<='9'))
{s=*q-48;
t=t*10+s;
b[j]=t;
}
else {if(t!=0) ++j;
t=0;
}
}
printf("There are %d Z\nThey are:\n",j+1);
for(i=0;i<=j;i++)
printf("%d ",b[i]);
printf("\n");
}
。哎,在机子上运行总是不对,但自己找不出哪不对。。。求大家帮忙下。。