如何用C语言编写程序来统计一个字符串中各个大写字母(A-Z)的出现次数?
时间: 2024-11-25 08:32:43 浏览: 5
c语言将字符串中的小写字母转换成大写字母
在C语言中,你可以使用数组或结构体来存储每个大写字母及其对应的计数,然后遍历字符串,对于每一个字符,如果它是大写字母,则增加相应的计数。以下是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的功能
#define ALPHABET_SIZE 26
// 定义结构体来存储字母及其出现次数
typedef struct {
char letter;
int count;
} LetterCount;
int main() {
char str[100]; // 假设我们读取的字符串长度不超过100个字符
fgets(str, sizeof(str), stdin); // 从标准输入读取字符串
LetterCount alphabet[ALPHABET_SIZE] = { {'A', 0}, {'B', 0}, ... , {'Z', 0} }; // 初始化字母计数为0
for (int i = 0; str[i] != '\n'; i++) { // 遍历字符串,忽略换行符
if (isupper(str[i])) { // 检查是否是大写字母
alphabet[str[i] - 'A'].count++; // 更新对应字母的计数
}
}
// 打印结果
for (int i = 0; i < ALPHABET_SIZE; i++) {
if (alphabet[i].count > 0) {
printf("%c appears %d times.\n", alphabet[i].letter, alphabet[i].count);
}
}
return 0;
}
```
这个程序首先定义了一个结构体`LetterCount`来存储每个字母和它的计数。接着,通过`fgets`获取用户的输入,然后遍历输入的字符串,检查每个字符是否为大写字母。如果是,就相应地增加其在`alphabet`数组中的计数。最后,打印出每个出现过的字母及其频率。
阅读全文