本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
思路:原数组中只出现一次的元素存入另一个数组 之后冒泡排序输出
#include<stdio.h>
#include<string.h>
int main()
{
char a[81];
char b[81] = {'\0'};
int c = 0;
gets(a);
for(int i = 0;i < strlen(a);i ++){
for(int j = 0;j < i - c + 1;j ++){
if(b[j] == a[i]){
c ++;
break;
}
if(j == i - c){
b[j] = a[i];
}
}
}
int n = strlen(b);
b[n] = '\0';
for(int i = 0;i < n - 1;i ++){
for(int j = 0;j < n -i -1;j ++){
if(b[j] > b[j + 1]){
int t = b[j + 1];
b[j + 1] = b[j];
b[j] = t;
}
}
}
puts(b);
return 0;
}