用c语言写代码,要求是:统计一个字符串中每个字符出现的次数并排序
时间: 2024-05-16 17:14:41 浏览: 95
统计一个字符串中每个字符出现的次数
以下是一个用C语言实现的统计字符串中每个字符出现次数并排序的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int count[256] = {0};
int length, i, j, temp;
printf("请输入一个字符串:");
fgets(str, 100, stdin);
length = strlen(str);
for (i = 0; i < length; i++) {
count[(int)str[i]]++;
}
for (i = 0; i < 256; i++) {
for (j = i + 1; j < 256; j++) {
if (count[i] < count[j]) {
temp = count[i];
count[i] = count[j];
count[j] = temp;
}
}
}
printf("字符出现次数从多到少的排序如下:\n");
for (i = 0; i < 256; i++) {
if (count[i] > 0) {
printf("%c 出现次数:%d\n", i, count[i]);
}
}
return 0;
}
```
代码实现的思路是,先定义一个长度为256的数组count,用来存储每个字符出现的次数,数组下标对应字符的ASCII码。然后遍历输入的字符串,统计每个字符出现的次数。最后对count数组进行排序,输出每个字符出现的次数。
值得注意的是,排序部分的实现方式并不是最优的,因为数组长度较小,所以使用了冒泡排序,如果数组长度较大,建议使用更快的排序算法,如快速排序等。
阅读全文