[C语言]字符统计

Author:MTingle
人工智能专业
荃者所以在鱼,得鱼而忘荃;蹄者所以在兔,得兔而忘蹄;言者所以在意,得意而忘 言。吾安得夫忘言之人而与之言哉!

[C语言]字符统计

题目要求:

输入一个字符串,分别统计数字,字母,以及其他字符的个数

一、以下是整个程序的代码

#include<stdio.h>
#include<string.h>
int main()
{
	char str[100];
	gets(str);
	int na = 0, nd = 0, na1 = 0, na2 = 0, nother = 0;
	for (int i = 0; i <= strlen(str) - 1; i++)
	{
		if (str[i] >= 'A' && str[i] <= 'Z')
		{
			na1++;
		}
		else if (str[i] >= 'a' && str[i] <= 'z')
		{
			na2++;
		}
		else if (str[i] >= '0' && str[i] <= '9') { nd++; }
		else { nother++; }
	}	
	na = na1 + na2;	printf("digit=%d\talpha=%d\tother=%d\n", nd, na, nother);
	return 0;
}

二、使用步骤

1.库包含

#include<stdio.h>
#include<string.h>

2.先使用一个数组str存储我们即将输入的字符串,并通过gets函数输入字符串,用na,nd,nother分别代表数字,字母,和其他字符串的数量,其中na1表示大写字母,na2表示小写字母

char str[100];
	gets(str);
	int na = 0, nd = 0, na1 = 0, na2 = 0, nother = 0;

2.在c语言中,字符在内存中以ASCII码储存,故我们可以根据该表进行下续实验

在这里插入图片描述
但我们也可以通过字母来直接进行操作,如图所示

#include<stdio.h>
#include<string>
int main()
{
	char m;
	scanf("%c", &m);
	printf("%d\n", m);
	printf("%c\n", m);
}

当我们输入A时,会得到:
65
A
当我们输入a时,会得到:
97
a

3.统计大写字母和小写字母(判别方法)

if (str[i] >= 'A' && str[i] <= 'Z')
		{
			na1++;
		}
else if (str[i] >= 'a' && str[i] <= 'z')
		{
			na2++;
		}

4.统计数字(判别)

else if (str[i] >= '0' && str[i] <= '9') { nd++; }

5.统计其他字符(判别)

else { nother++; }

6.把循环嵌入程序

for (int i = 0; i <= strlen(str) - 1; i++)
	{
		if (str[i] >= 'A' && str[i] <= 'Z')
		{
			na1++;
		}
		else if (str[i] >= 'a' && str[i] <= 'z')
		{
			na2++;
		}
		else if (str[i] >= '0' && str[i] <= '9') { nd++; }
		else { nother++; }
	}	

5.统计并输出

na = na1 + na2;	printf("digit=%d\talpha=%d\tother=%d\n", nd, na, nother);

希望这篇文章可以给大家带来帮助

  • 11
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值