有谁可以告诉我错哪里了
统计整数个数(5分).题目内容:
输入一个字符串,内有数字和非数字字符,例如:
A123cdf 456cpc876er 849
将其中连续的数字作为一个整数,依次存放到数组a中。例如123存放在a[0],456存放在a[1]……统计共有多少个整数,并输出这些数。
注意:非数字字符可包括:大小写字符、空格、*、-、/、+、%、$、#等其他非数字的字符
输入格式:
输入一个带有数字和非数字字符的字符串
输出格式:
输出整数个数 -----> "共有%d个整数\n"
输出这些整数 ------> %d
输入样例:
A123cdf 456cpc876er 849
输出样例:
共有4个整数
123
456
876
849
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *sp;
char *p=sp;
int a[80];
int num=0,power=1,i;
int value=0;
gets(sp);
while(*p!='\0')
{
// if p没有指向数字,跳过
for (; !(*p>='0'&& *p<='9'); p++)
// 从p开始的所有数字,依次取出放入value
value=0;
for (value=0; *p>='0'&& *p<='9'; p++)
{
value=value*10+*p-'0';
}
for (power=1; *p>='0'&& *p<='9'; p++)
{
value=value*10+*p-'0';
power=power*10;
}
value=value/power;
a[num++]=value;
}
printf("共有%d个整数\n",num);
for(i=0;i<num;i++)
{
printf("%d\n",a[i]);
}
}