c语言 给定一个由大小写字母组成的字符串,统计其中哪个小写字母出现的次数最多。
时间: 2024-10-02 14:02:07 浏览: 100
在 C 语言中,你可以通过遍历字符串并使用哈希表(如数组或者结构体数组)来统计每个小写字母出现的次数。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h>
#define ALPHABET_SIZE 26
// 定义一个结构体来存储字母及其计数
typedef struct {
char letter;
int count;
} LetterCount;
void countLowerCase(char *str) {
// 初始化所有字母计数为0
LetterCount alphabet[ALPHABET_SIZE] = { {'a', 0}, {'b', 0}, ... , {'z', 0} };
for (int i = 0; str[i]; i++) {
if (islower(str[i])) {
alphabet[str[i] - 'a'].count++;
}
}
// 找出出现次数最多的字母
int max_count = 0;
char most_frequent_char = '\0';
for (int j = 0; j < ALPHABET_SIZE; j++) {
if (alphabet[j].count > max_count) {
max_count = alphabet[j].count;
most_frequent_char = alphabet[j].letter;
}
}
printf("小写字母 '%c' 出现的次数最多,共 %d 次.\n", most_frequent_char, max_count);
}
int main() {
char input_str[100];
printf("请输入一个包含大小写字母的字符串: ");
fgets(input_str, sizeof(input_str), stdin); // 注意这里需要去掉末尾的换行符
input_str[strlen(input_str) - 1] = '\0'; // 去掉末尾的换行符
countLowerCase(input_str);
return 0;
}
```
在这个程序中,`countLowerCase` 函数首先初始化了一个字母计数数组,然后遍历输入字符串,每当遇到小写字母就增加相应的计数。最后,它遍历数组找出出现次数最多的字母。
阅读全文