字符串数字提取

编写函数int parse(char *str, int *num)用户输入的字符串中包含有若干个数字要求通过该函数将数字提取出来并返回数字个数。编写完整程序实现和验证本题任务。(允许使用#include <string.h>)

注:若只实现返回数字个数,本题只获得20分。允许数字以字符的形式给出,本题可获25分。将提取到的数字存储在num数组中,并在main()中输出,将获30分。

输入:

字符串str

输出:

输出字符串中的数字个数,以及各个数字。

提示:如下输出结果供验证程序是否正确:

输入:

Abc12dE23 e45i789

输出:

Total 4 numbers:

12 23 45 789

输入:

@@23%%78^^9%%45

输出:

Total 4 numbers:

23 78 9 45

#include<stdio.h>
int parse(char* str, int* num[])
{
	int sum=0,n=0;
	while (*str)
	{
		if (*str >= '0' && *str <= '9')
		{
			sum++;     
			while (*str!='\0' && *str >= '0' && *str <= '9')
			{
				n = n * 10 + *str-'0';
				str++;
			}
			num[sum-1] = n;
			n = 0;
		}
		str++;
}
	return sum;
}
int main()
{
	char str[50] = {"0"};
	int num[50] = {0};
	gets(str);
	printf("Total %d numbers\n", parse(str,num));
	for (int i = 0; i < 50; i++)
	{       if(num[i]!=0)
			printf("%d ", num[i]);
	}
	return 0;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值