8.16输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。

//C程序设计第四版(谭浩强)
//章节:第八章 善于利用指针 
//题号:8.16
//题目:输入一个字符串,内有数字和非数字字符,例如:A123x456 17960? 302ta5876
//将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]……
//统计共有多少个整数,并输出这些数。 
#include <stdio.h>
#include <string.h>
void count(char *s)
{
	int i,j,a[20],temp,num=0,sum;
	for(i=0;i<strlen(s);i++)
	{
		if(*(s+i)>='0'&&*(s+i)<='9')	//判断当前字符是否为数字字符 
		{
			temp=*(s+i)-'0';		//将数字字符转换成整数 
			for(j=i+1;j<strlen(s);j++)
			{
				if(*(s+j)>='0'&&*(s+j)<='9')	//判断数字字符的下一个字符是否为数字字符 
				{
					temp=temp*10+*(s+j)-'0';	//计算连续几个整数连成的整数的值 
					i++;
				}
				else 
					break;
			}
			*(a+num)=temp;	//将整数值储存在数组a中 
			num++;
		}
	}
	printf("the number of integers:%d",num);
	printf("\nthey are:\n");
	for(i=0;i<num;i++)
		printf("%d ",*(a+i));
}
int main()
{
	int i;
	char s[81];
	printf("input string:\n");
	gets(s);
	count(s);
	return 0;
}
展开阅读全文

没有更多推荐了,返回首页