5.输入一个字符串,过滤掉所有的非数字字符并把其存储到一个新的字符数组中。gets,puts函数的解释,isdigit函数的使用及实现。(五月测试)

输入一个字符串到数组名为a的数组中,过滤掉所有的非数字字符并把其存储到一个新的字符数组digit中,输出由数字字符组成的字符串。

先上答案

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

int main()
{
	char a[100] = { 0 };
	char digit[100] = { 0 };
	int i;
	int j = 0;

	gets(a);

	for (i = 0; a[i] != '\0';i++)
	{
		if (isdigit(a[i]))
		{
			digit[j] = a[i];
			j++;
		}
	}

	puts(digit);

	return 0;
}

注意:数组需要初始化。(不初始化可能导致不可预测的结果。 在使用变量之前,始终应初始化变量。)

第一步:

        我们要学会gets和puts这两个输入输出函数

gets

可以看到他的函数原型的参数是字符型的指针,所以常用于字符串的输入。与scanf("%s",数组名)相似,但要记住gets仅仅可以用来作为“char”型的字符输入,也同样需要考虑输入结束时敲下空格也占用一个空间,使用时要注意数组溢出的问题。

扩展:

如图所示:如果gets成功,返回值为输入的参数;

                   如果失败用NULL来表示,用ferrorfeof来区分是哪一种错误。

feof:当文件读取结束时,判断是不是遇到文件末尾才结束的。

ferror:当文件读取结束时,判断是不是遇到错误才读取结束的。
                                                                                                

                                                                                                          (学文件操作的时候会学到)

优点:

他可以接收空格,Tab键,碰到回车输入才结束。

让代码更加简洁且缓冲区不会遗留' \n '

puts

与puts同理,参数是地址或者字符串

注意:puts打印结束后自动换行。

扩展:

如图所示,成功返回一个非负值;失败返回则EOF;

puts函数将字符串写入标准输出流stdout,用输出流中的换行符替换字符串的结束空字符。

isdigit

isdigit是C语言中的一个函数(课本中有表述过)头文件为

#include<ctype.h>

c++中为

#include<cctype.h>

第二步:

             哒哒哒的敲出来

忘了有这个函数也问题不大,继续往下看

PLUS(自己写函数):
#include<stdio.h>

int my_isdigit(int c)
{
	if ((c >= '0' && c <= '9'))
	{
		return c;
	}

	return 0;
}


int main()
{
	char a[100] = { 0 };
	char digit[100] = { 0 };
	int i;
	int j = 0;

	gets(a);

	for (i = 0; a[i] != '\0';i++)
	{
		if (my_isdigit(a[i]))
		{
			digit[j] = a[i];
			j++;
		}
	}

	puts(digit);

	return 0;
}

相信聪明的你一定可以!

endl

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值