统计字符串中26个字母各自出现的次数,不区分大小写编写C语言
时间: 2023-11-09 21:07:54 浏览: 211
以下是C语言代码实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含tolower函数
int main() {
char str[1000];
int freq[26] = {0}; // 初始化为0
int i, idx;
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断是否为字母
idx = tolower(str[i]) - 'a'; // 转换为小写字母后计算下标
freq[idx]++;
}
}
for (i = 0; i < 26; i++) {
printf("%c出现的次数为%d\n", 'a' + i, freq[i]);
}
return 0;
}
```
代码解释:
1. 定义一个字符数组`str`,用于存储输入的字符串。
2. 定义一个整数数组`freq`,用于记录每个字母出现的次数。初始化为0。
3. 使用`fgets()`函数从标准输入中读取一行字符串。
4. 使用`for`循环遍历字符串中的每个字符:
1. 使用`isalpha()`函数判断该字符是否为字母。
2. 如果是字母,使用`tolower()`函数将其转换为小写字母,并计算对应的下标,将`freq`数组中对应位置的值加1。
5. 使用`for`循环遍历`freq`数组,输出每个字母出现的次数。
阅读全文