输入一个字符串,统计字符串中每个英文字母(不区分大小写)出现的次数
时间: 2024-11-15 16:04:28 浏览: 19
要统计一个字符串中每个英文字母(不区分大小写)出现的次数,你可以使用C语言中的字符数组、循环以及一个简单的计数器数组。这里有一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 引入ctype.h库用于处理字符
#define ALPHABET_SIZE 26
// 初始化字母计数数组为0
int letter_counts[ALPHABET_SIZE] = {0};
void count_letters(const char *str) {
while (*str) { // 遍历字符串中的每一个字符
if (isalpha(*str)) { // 检查字符是否为字母(忽略空格和标点)
char lower_case = tolower(*str); // 将大写字母转为小写
int index = lower_case - 'a'; // 计算字母在数组中的索引(a=0, b=1, ..., z=25)
// 增加对应字母的计数
letter_counts[index]++;
}
str++; // 移动到下一个字符
}
}
int main() {
char input_str[100];
printf("Enter a string: ");
fgets(input_str, sizeof(input_str), stdin); // 从标准输入读取字符串,包括换行符
// 去掉字符串末尾的换行符
input_str[strcspn(input_str, "\n")] = '\0';
count_letters(input_str);
// 打印结果
for (int i = 0; i < ALPHABET_SIZE; i++) {
if (letter_counts[i] > 0) {
printf("%c appears %d times.\n", 'a' + i, letter_counts[i]);
}
}
return 0;
}
```
当你运行这个程序并输入一个字符串后,它会统计其中每个英文字母(不分大小写)的出现次数并打印出来。
阅读全文