7-4 删除重复字符 (20 分)c语言解答附思路

7-4 删除重复字符 (20 分)
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。

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

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

输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
我的代码:``
#include<stdio.h>
#include<string.h>
int main(){
char str[1111];//因为测试不考虑内存,所以随便定义了下
gets(str);
int n=strlen(str);//计算输入字符串的长度
int i;
int j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(str[i]==str[j]&&i!=j){//循环寻找重复的字符,因为下标不相同所以不存在同一个字符误删的情况
str[j]=’\0’;//因为只有最后一个字符是\0所以放心使用
}
}
}
char temp;//定义一个变量用于给字符排序用
for(i=0;i<n;i++){//冒泡排序法
for(j=0;j<n-1-i;j++){
if(str[j]>str[j+1])
{
temp = str[j];
str[j]=str[j+1];
str[j+1]=temp;
}
}
}
for(i=0;i<n;i++){
if(str[i]!=’\0’){//如果识别到\0就不会输出因为是用for循环的所以不会少输出
printf("%c",str[i]);
}

}
printf("\0");//因为\0都没有输出而最后末尾需要有因此这里加上
return 0;
}``

猜你喜欢

转载自blog.csdn.net/qq_43382350/article/details/84774207
今日推荐