本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
结尾无空行
输出样例:
23adefijnvz
结尾无空行
#include<stdio.h>
#include<string.h>
int main()
{
char str[81],temp;
int i,j,length,temmin;
gets(str);
length=strlen(str);
for(i=0;i<length;i++)//先排序无论重复(选择排序法)
{
temmin=i;//假设最小的字符的下标是i=0
for(j=i+1;j<length;j++)
{
if(str[j]<str[temmin])//找到更小的字符,则下标标记一下
temmin=j;//把i=0后面的遍历一遍找到了最小字符
}
if(temmin!=i)
{
temp=str[i];
str[i]=str[temmin];
str[temmin]=temp;
}
}
printf("%c",str[0]);
for(i=1;i<length;i++)
{
if(str[i]!=str[i-1])
printf("%c",str[i]);
}
return 0;
}