C语言问题:给定一个任意字符串,提取出其中所包含的整数。

C语言问题:给定一个任意字符串,提取出其中所包含的整数。给定一个任意字符串,提取出其中所包含的整数。
样例输入:A12 32bc de51f6576g
样例输出:共计 4 个整数:12 32 51 6576

  查找字符串中的数字并返回其个数:

#include <stdio.h>

int main(void)
{
char str[1000];
int i, count, a[100];
int p, q, r;
int tmp;

gets(str);

r = 0;
count = 0;

while(1)
{
while(str[r] && (str[r]<'0' || str[r]>'9'))
r++; //跳过非数字 

if(str[r])
{
p = r; //p指向数字子串开头
q = r + 1; //q寻找数字串结尾 
a[count] = str[r]-'0';

while(str[q]>='0' && str[q]<='9')
{
a[count] = 10*a[count]+(str[q]-'0');
q++;
}

r = q; //新起点
count++; 
}
else
break; 
}

printf("共计 %d 个整数:", count);
for(i=0; i<count; i++)
printf("%d ", a[i]);
printf("\n");

return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-05
具体代码不给你写了,很简单,就是判断是否是整数,ASCII码大于'0'小于'9'均为整数,保存下来,如果下一个是整数,继续保存,如果下一个不是整数,用空格代替,并继续读取。最后输出保存的结果。
相似回答