输入一个字符串,对字符中的各个英文字符,数字,空格进行统计(可反复调用)按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照 asii码由小到大排序输出
时间: 2023-03-29 10:04:09 浏览: 90
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
好的,我可以回答这个问题。以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
void count_chars(char *str) {
int count[128] = {}; // 用数组记录每个字符出现的次数
int len = strlen(str);
for (int i = ; i < len; i++) {
count[(int)str[i]]++;
}
// 冒泡排序
for (int i = ; i < 128; i++) {
for (int j = i + 1; j < 128; j++) {
if (count[i] < count[j] || (count[i] == count[j] && i > j)) {
int temp_count = count[i];
count[i] = count[j];
count[j] = temp_count;
char temp_char = (char)i;
str[i] = str[j];
str[j] = temp_char;
}
}
}
// 输出结果
for (int i = ; i < 128; i++) {
if (count[i] > ) {
printf("%c: %d\n", (char)i, count[i]);
}
}
}
int main() {
char str[100];
while (1) {
printf("请输入一个字符串:");
fgets(str, 100, stdin);
count_chars(str);
}
return ;
}
```
这个程序可以反复调用,每次输入一个字符串,就会统计其中各个英文字符、数字、空格出现的次数,并按照统计个数由多到少输出统计结果。如果统计的个数相同,则按照 asii 码由小到大排序输出。
阅读全文