通过键盘输人任意一些字符,统计字母、数字、空格及其他字符的个数(除数字、空格和字母以外的字符均属于其他字符,当通过键盘输人“$”时结束。

文章讲述了使用getchar()和scanf函数获取用户键盘输入并统计字母、数字、空格和其他字符数量的方法,强调了括号在getchar()条件表达式中的重要性,并对比了两种方法的运行结果。
摘要由CSDN通过智能技术生成

 调用 getchar()函数,将从键盘输人的数据暂存到键盘缓冲区,直到输入结束(遇到'$'字符)后,将缓冲区中的数据一起输人到计算机中。利用while循环对每个字符进行判断和统计,直到遇到'$'字符为止。

int main()
{
	char c;
	int num = 0,n = 0,blank = 0,rest = 0;
	while ((c = getchar()) != '$')
	{
		if (c >= 48 && c <= 57)
		{
			num++;
		}
		else if (c >= 'a' && c <= 'z'|| c >= 'A' && c <= 'Z')
		{
			n++;
		}
		else if (c == ' ')
		{
			blank++;
		}
		else
		{
			rest++;
		}
	}
	printf("字母的个数是%d\n", n);
	printf("数字的个数是%d\n", num);
	printf("空格的个数是%d\n", blank);
	printf("其他字符的个数是%d\n", rest);
	return 0;
}

不过上面代码我们需要注意的是 循环后面括号里的条件表达式我们需要给 c = getchar() 加上括号

否则 getchar() 中的字符不会输入到变量 c 中运行结果如下:

这两段代码效果一样:

 由于并没有赋值给 C所以C中储存的内容是随机的。

而正确的运行结果应该是下面这样的:

 当然换行也是算作随机字符的:

除此之外我们还可以用 scanf 来实现:
 

int main()
{
	char c = 'a';
	int num = 0, n = 0, blank = 0, rest = 0;
	while (1)
	{
		scanf("%c", &c);
		if (c >= '0' && c <= '9')
		{
			num++;
		}
		else if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
		{
			n++;
		}
		else if (c == ' ')
		{
			blank++;
		}
		else
		{
			rest++;
		}
		if (c == '$')
		{
			rest--;
			break;
		}
	}
	printf("字母的个数是%d\n", n);
	printf("数字的个数是%d\n", num);
	printf("空格的个数是%d\n", blank);
	printf("其他字符的个数是%d\n", rest);
	return 0;
}

运行结果如下: 

感谢大家的观看! 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值