用C语言编一程序,它读入一行正文,统计在正文中出现的各个字的次数,并按照字典顺序显示结果。 例如,如果输入的正文为:how do you do?,则输出结果为: do 2 how 1 you 1
时间: 2024-03-25 14:39:08 浏览: 6
好的,以下是用C语言编写的程序,可以实现读入一行正文,统计在正文中出现的各个字的次数,并按照字典顺序显示结果:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 1000 // 最大正文长度
int main() {
char str[MAX_LEN];
int cnt[26] = {0}; // 统计每个字母的出现次数
// 读入一行正文
printf("请输入一行正文:\n");
fgets(str, MAX_LEN, stdin);
// 统计每个字母的出现次数
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) { // 判断是否为字母
cnt[tolower(str[i]) - 'a']++; // 统计出现次数
}
}
// 按照字典顺序显示结果
printf("按照字典顺序显示结果:\n");
for (int i = 0; i < 26; i++) {
if (cnt[i] > 0) {
printf("%c%c %d\n", toupper(i + 'a'), i < 25 ? i + 1 + 'a' : '\0', cnt[i]); // 输出字母及出现次数
}
}
return 0;
}
```
程序的基本思路是:先读入一行正文,然后遍历每个字符,如果是字母则在相应的计数器中加1,最后按照字典顺序输出结果。注意,为了避免大小写混淆,我们使用了`tolower`函数将所有字母转换为小写,并使用`toupper`函数将输出结果中的首字母转换为大写。