本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。

输出格式:
输出去重排序后的结果字符串。

输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz

思想如下:

如输入:baacd 

然后有num[b]=1,num[a]=1,num[a]=1,num[c]=1,num[d]=1,自动删重复的字符

并且每个字符的ascii码作为下表不用排序有:abcd

#include <iostream>

using namespace std;
int num[300];ascii码有128个所以300个足以
int main()
{
    int i;
    string s;
    getline(cin,s);
    for(i=0;i<s.size();++i)
    {
        num[s[i]]=1;//将存在的字符作为下标,赋值为1自动删除重复
    }
    for(i=0;i<150;++i)
    {
        if(num[i]==1)
        {
            cout<<(char)i;//根据ascii码强转输出字符
        }
    }
}