本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
代码展示
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 80
int main() {
char input[MAX_LENGTH];
char unique[MAX_LENGTH];
int count[256] = {0};
int index = 0;
fgets(input, MAX_LENGTH, stdin);
for (int i = 0; input[i] != '\0'; i++) {
unsigned char ch = input[i];
if (ch != '\n' && count[ch] == 0) {
count[ch] = 1;
unique[index++] = ch;
}
}
unique[index] = '\0';
for (int i = 0; i < index - 1; i++) {
for (int j = 0; j < index - i - 1; j++) {
if (unique[j] > unique[j + 1]) {
char temp = unique[j];
unique[j] = unique[j + 1];
unique[j + 1] = temp;
}
}
}
printf("%s\n", unique);
return 0;
}