本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
思路:
先对字符串里的字符按照ASCII码顺序从小到大排序,再对排序后的数组删除重复项。
#include<stdio.h>
#include<string.h>
char* sortArray(char *str, int n);
char* deleteDuplicate(char *str, int n);
int main(){
char str[80];
gets(str);
int n = strlen(str);
sortArray(str,n);
printf("%s",deleteDuplicate(str,n));
}
/**
*选择排序
*/
char* sortArray(char *str, int n){
for(int i=0; i<n-1; i++){
char min=str[i];
int minIdx=i;
for(int j=i+1; j<n; j++){
if(str[j]<min){
min=str[j];
minIdx=j;
}
}