05 统计字符串中各字母(不区分大小写)出现的次数
问题描述:
用户输入一个字符串,请统计该字符串的每个字母出现的次数(不区分大小写)。例如a:2
运行效果:
代码实现:
#include<stdio.h>
#define MaxSize 100
char arr[26]; // 26个小写字母
int count[26] = { 0 }; // 记录26个字母分别出现的次数
// 统计字符串中各个字母出现的次数
void fun(char *str)
{
int i = 0;
while (str[i] != '\0')
{
if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母
count[str[i++] - 'A']++;
}
else if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母
count[str[i++] - 'a']++;
}
else {
i++;
}
}
}
int main()
{
char str[MaxSize] = {}; // 字符串
// 写入26个小写字母
arr[0] = 'a';
for (int i = 1; i <= 25; i++)
arr[i] = arr[0] + i;
// 用户输入
printf("请输入字符串:");
fgets(str, MaxSize, stdin);
// 统计各个字母出现的次数
fun(str);
// 结果输出
printf("你输入的字符串是:%s",str);
for (int i = 0; i <= 25; i++)
printf("%c:%d\n",arr[i], count[i]);
return 0;
}