7-60 删除重复字符(20 分)

题目:

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:

ad2f3adjfeainzzzv

输出样例:

23adefijnvz

代码:(排序后非重复输出,不删除重复字符)

#include <stdio.h>
#include <string.h>
#define MAX 81
int main(){
    char str[MAX], temp;
    int i, j, len, minPos;
    gets(str);
    len = strlen(str);
    for(i=0; i<len; i++){
        //选择排序
        minPos = i;
        for(j=i+1; j<len; j++){
            if(str[j]<str[minPos]){
                minPos = j;
            }
        }
        if(minPos!=i){
            temp = str[i];
            str[i] = str[minPos];
            str[minPos] = temp;
        }
    }
    printf("%c", str[0]);
    for(i=1; i<len; i++){
        if(str[i]!=str[i-1]){
            printf("%c", str[i]);
        }
    }

    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36913610/article/details/81189660