输入一段英文(字数小于100),以回车结束,统计其中的每个字母出现次数,不区分大小字。用c语言
时间: 2024-12-14 18:27:04 浏览: 7
在C语言中,你可以通过创建一个哈希表(通常用数组或结构体表示)来统计输入字符串中每个字符(不区分大小写)的出现次数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含tolower函数,用于转换字符到小写
#define MAX_CHAR 26 // 假设我们只关心英文字母
// 创建一个数组存储字符及其出现次数
typedef struct {
char ch;
int count;
} CharCount;
void count_chars(char* str) {
int len = strlen(str);
CharCount counts[MAX_CHAR] = {0}; // 初始化所有计数为0
for (int i = 0; i < len; i++) {
char lowercase_char = tolower(str[i]); // 转换为小写
if ('a' <= lowercase_char && lowercase_char <= 'z') {
counts[lowercase_char - 'a'].count++; // 更新对应字母的计数
}
}
// 打印结果
for (int i = 0; i < MAX_CHAR; i++) {
if (counts[i].count > 0) {
printf("'%c': %d\n", i + 'a', counts[i].count);
}
}
}
int main() {
char input[100];
printf("Enter a string (less than 100 characters): ");
fgets(input, sizeof(input), stdin); // 读取用户输入,但去掉末尾的换行符
input[strcspn(input, "\n")] = '\0'; // 替换换行符
count_chars(input);
return 0;
}
```
阅读全文