输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876 将连续的数字作为一个整数,一次存放到一数组a中, 例如123存放在a[0]中,456放在a[1]中……

/*输入一个字符串,内有数字和非数字字符,例如 A123x456 17960? 302tab5876
将连续的数字作为一个整数,一次存放到一数组a中,
例如123存放在a[0]中,456放在a[1]中……统计共有多少个整数,并输出这些数*/

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
	char c[100];
	int a[10];
	int i,j,sum,flag = 0;
	
	printf("请输入字符:\n");
	gets(c);
	
	for(i = 0,j = 0;i < strlen(c);i++)
	{
		if(isdigit(c[i]))
		{
			sum = sum * 10 + c[i] - 48;
			flag = 1;
		}
		if(!isdigit(c[i]) && flag == 1)
		{
			a[j] = sum;
			sum = 0;
			j++;
			flag = 0;
		}
		if(i == strlen(c) - 1 && flag == 1)
		{
			a[j++] = sum;
			sum = 0;
			flag = 0;
		}
	}
	
	printf("共有%d个整数,分别是:\n",j);
	for(i = 0;i < j;i++)
	{
		printf("%d\n",a[i]);
	}
}

谭浩强C程序设计(第四版)p292第16题
好多程序还是不够健壮啊,一运行就显示出不健壮了。

发布了87 篇原创文章 · 获赞 9 · 访问量 8571

猜你喜欢

转载自blog.csdn.net/qq_40834200/article/details/105519424