从键盘读入一行字符(约定:字符数≤127字节),统计并显示该行字符中26个英文字母

从键盘读入一行字符(约定:字符数≤127字节),统计并显示该行字符中26个英文字母(不区分大小写)各自出现的次数,没有出现的字符不显示。编程可用素材:printf("请输入一行字符:")、printf("统计结果为:\n")、printf("%c-%d\n"…。  程序的运行效果应类似地如图1和图2所示,图1和图2中的红色部分是从键盘输入的内容。

从ascii值入手,每个字母对应的就是(65+0)-(65+26)和(97+0)-(97+26),然后对应转换即可
#include <stdio.h>

int main()
{
int let[26] = {0};
int i;
char ch;
while ((ch = getchar()) != '\n')
{
if (ch >= 'A' && ch <= 'Z')
{
let[ch - 'A']++;
}
else if (ch >= 'a' && ch <= 'z')
{
let[ch - 'a']++;
}
}
for (i = 0; i < 26; i++)
{
if (let[i] != 0)
{
printf("%c: %d\n", i + 'A', let[i]);
}
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答