输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中并输出

输入一个字符串,内有数字和非数字字符,例如:a123x456 17960? 302tab5876

将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1], ...。

用函数实现,int draw_digit(char *str, int* a)。其中str是字符串,a是一个数组,返回值表示整数的个数。

主程序中读入字符串,调用函数,然后在主程序中输出这些整数和整数个数。

#include<stdio.h>

int flag = 0;
int draw_digit(char* str, int* a)
{
	int num = 0;
	for (; *str != ''; str++)
	{
		if ((*str >= '0') && (*str <= '9'))
		{
			num = num * 10 + (*str - '0');
			if (((*(str + 1) < '0')) || ((*(str + 1) > '9')))
			{
				*a = num;
				a += 1;
				num = 0;
				flag++;
			}
		}
	}
	return flag;
}

int main()
{
	char str[100];
	int a[100] = { 0 }, i;
	gets_s(str);
	draw_digit(str, a);
	if (flag == 0)
	{
		printf("no integers!");
		return 0;
	}
	for (i = 0; a[i] != 0; i++)
		printf("%d ", a[i]);
	printf("n%dn", flag);
	return 0;
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>