用C语言编写,找出输入字符串中的重复字符,再根据 ASCI I码把重复的字符从小到大排序
时间: 2024-03-26 20:40:56 浏览: 71
以下是一个使用C语言编写的程序,用于查找输入的字符串中的重复字符,并按照ASCII码从小到大的顺序排序输出重复的字符:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int freq[256] = {0}; // 用于记录每个字符出现的频率
int i, j;
printf("Enter a string: ");
fgets(str, 100, stdin);
for (i = 0; str[i] != '\0'; i++) {
freq[(int)str[i]]++;
}
printf("Duplicate characters in the string: ");
for (i = 0; i < 256; i++) {
if (freq[i] > 1) {
printf("%c ", i);
}
}
printf("\nSorted duplicate characters in the string: ");
for (i = 0; i < 256; i++) {
if (freq[i] > 1) {
for (j = i + 1; j < 256; j++) {
if (freq[j] > 1 && j < i) {
int temp = freq[i];
freq[i] = freq[j];
freq[j] = temp;
}
}
printf("%c ", i);
}
}
return 0;
}
```
这个程序首先使用 `fgets()` 函数从标准输入中读取一个字符串,然后使用一个字符数组 `freq` 记录每个字符出现的频率。然后程序遍历整个字符数组,统计每个字符出现的次数,如果一个字符出现的次数大于1,则输出该字符。最后,程序再次遍历整个字符数组,将重复的字符按照ASCII码从小到大的顺序排序输出。
阅读全文