C语言基础编程之统计字母,数字和空格

统计字符,数字和空格
方案一:
int main()
{
	int number = 0, letter = 0, spece = 0;//对计数变量的初始化
	char ch = 0;

	while (ch != '\n')//用while循环来完成字符的输入,我们输入一个字符,就判断一个字符。直到我们输入完成按下回车键,就完成统计并输出计好的变量。
	{
		scanf("%c", &ch);

		if (ch >= '0'&&ch <= '9')//判断数字
		{
			number++;
		}

		if (ch == ' ')//判断空格
		{
			spece++;
		}

		if (ch >= 'a'&&ch <= 'z' || ch >= 'A'&&ch <= 'Z')//判断字母
		{
			letter++;
		}
	}

	printf("number:%d\n", number);//输出
	printf("letter:%d\n", letter);
	printf("spece:%d\n", spece);

system("pause");
	return 0;
}
总结:想要统计字符,数字和空格的数量,我们不能用数组的方法去做,因为在定义数组的时候就要把数组的大小也要定义好,但是你并不知道我要输入多少东西,万一你定义的数组装不下我所输入的,那么就很容易产生段错误(访问了一块不属于你的内存空间)。



方案二:
int main()
{
	int number = 0, letter = 0, spece = 0;
	char ch = 0;

	while (1)
	{
		scanf("%c", &ch);

		if (ch >= '0'&&ch <= '9')
		{
			number++;
		}

		if (ch == ' ')
		{
			spece++;
		}

		if (ch >= 'a'&&ch <= 'z' || ch >= 'A'&&ch <= 'Z')
		{
			letter++;
		}
		if (ch == '\n')
		{
			printf("number:%d\n", number);
			printf("letter:%d\n", letter);
			printf("spece:%d\n", spece);
			number = 0;
			letter = 0;
			spece = 0;
		}
	}

	system("pause");
	return 0;
}

总结:这种方案的统计和方案一的统计有所差别,这种统计方案是我统计完一遍字符我不想退出,我想再次输入字符统计字符,数字和空格的数量,上面的只能统计一次,这个可以统计很多次,直到你自己想要退出程序。这种方案和方案一的区别在于方案二的while循环是死循环,也就是程序本身不会自己结束程序,同时把输出给加入到了while中,这样就可以一直统计输出你输入的字符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值