用c语言编写一个程序:输入一个字符串,输出字符串中出现次数最多的字母。 输入:输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。 输出:输出一个小字字母,表示该字符串中出现次数最多的字母。若有多个则只输出ASCII码最小的那个字母。
时间: 2025-01-01 07:39:15 浏览: 12
为了编写这样一个C语言程序,你可以使用字符数组存储字符串,并遍历数组统计每个字母出现的次数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[101]; // 字符串数组,长度足够容纳100个字符加终止符
int freq[26] = {0}; // 初始化一个用于记录字母频率的数组,大小为26(因为只有26个英文大写字母)
char max_char = '\0'; // 存储出现次数最多的字母
// 输入字符串
printf("请输入一个只含有大小写字母和空格的字符串(不超过100个字符):");
fgets(str, sizeof(str), stdin); // 使用fgets读入字符串,包括回车符
str[strcspn(str, "\n")] = '\0'; // 去除字符串末尾的换行符
// 遍历字符串,统计每个字母出现的次数
for (int i = 0; str[i] != '\0'; i++) {
if ('A' <= str[i] && str[i] <= 'Z') // 如果是大写字母
freq[str[i] - 'A']++;
else if ('a' <= str[i] && str[i] <= 'z') // 如果是小写字母
freq[str[i] - 'a']++;
}
// 找出出现次数最多的字母及其ASCII值
int max_count = 0;
for (int i = 0; i < 26; i++) {
if (freq[i] > max_count) {
max_count = freq[i];
max_char = 'A' + i; // 如果当前字母更频繁,更新max_char
}
}
// 输出结果
printf("出现次数最多的字母是 '%c',ASCII值为 %d。\n", max_char, max_char);
return 0;
}
```
当你运行这个程序时,它会提示你输入字符串,然后显示出现次数最多的字母以及它的ASCII码。注意,这个程序假定输入字符串符合题目描述,实际使用时可能需要添加错误检查。
阅读全文