【C语言】读入一行有空格的字符(最多127个字符),统计并分别显示26个英文字母(不区分大小写)出现的次数

读入一行有空格的字符(最多127个字符),统计并分别显示26个英文字母(不区分大小写)出现的次数

#include <stdio.h>

void Letter(char str[], int num[]);	//对字符数组str进行字母计数,并存入num数组

/* 读入一行有空格的字符(最多127),并统计分别显示26个英文字母出现的次数(不区分大小写) */

int main(void)
{
	int i, num[26] = {0};
	char c1, c2, str[128] = {'\0'};
	
	printf("请输入一行字符:");
	gets(str);
	Letter(str, num);
	
	printf("输出统计结果为:\n");
	for ( i = 0; i < 26; i++ )
	{
		if ( num[i] != 0 )
		{
			c1 = 'A' + i;	//所对应的大写字母
			c2 = 'a' + i;	//所对应的小写字母
			printf("%c%c-%d\n", c1, c2, num[i]);
		}
	}
	
	return 0;
}

void Letter(char str[], int num[])
{
	int i, j;
	for ( i = 0; str[i] != '\0'; i++ )
	{
		if ( str[i] >= 'A' && str[i] <= 'Z' )
		{
			j = str[i] - 'A';	//j是该字母在26个字母中所排列的位置
			num[j]++;			//说明找到了该位置的字母,记录+1
		}
		else if ( str[i] >= 'a' && str[i] <= 'z' )
		{
			j = str[i] - 'a';
			num[j]++;
		}
	}
}

运行结果如下:
请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值