c语言实现统计英文字符串的字符分布,即统计该字符串中每个字符的数量,只统计英文字母,不区分大小写,忽略其他非字母字符。输出按照 "字符:数量" 显示,每行一个结果,字符按字母表升序排列。 输入:一个少于1000个字符的字符串。输出:字符串中每个字符的数量,按照 "字符:数量" 显示,每行一个结果,字符按字母表升序排列。
时间: 2024-03-20 11:41:28 浏览: 68
好的,我可以帮你解决这个问题。以下是实现该功能的 C 代码:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_LENGTH 1000
int main() {
char str[MAX_LENGTH];
int count[26] = {0}; // 用于存储每个字符的数量,初始值为 0
printf("请输入一个英文字符串:\n");
fgets(str, MAX_LENGTH, stdin); // 从标准输入读取字符串
// 统计每个字符的数量
for (int i = 0; i < strlen(str); i++) {
if (isalpha(str[i])) { // 判断是否为字母
str[i] = tolower(str[i]); // 转化为小写字母
count[str[i] - 'a']++; // 对应字母的数量加 1
}
}
// 输出结果
for (int i = 0; i < 26; i++) {
if (count[i] != 0) {
printf("%c:%d\n", 'a' + i, count[i]);
}
}
return 0;
}
```
该程序首先从标准输入读取一个英文字符串,然后遍历字符串中的每个字符,判断是否为字母,如果是,则转化为小写字母并统计对应字母的数量。最后输出每个字母的数量,按照字母表升序排列。
阅读全文