本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
这道题的思路很自然,分为输入,去重,排序,输出四个步骤。其中输入和去重均为常规数组操作,按照字符ASCII码顺序从小到大排序其实就是直接比较即可。因此,可写代码如下。最开始写的时候,代码里有个bug,故分步骤调试了一下,调试代码已注释:
#include <stdio.h>
#define N 80
int main(){
char a[N], b[N];
int i = 0, j = 0, len = 0, lenb = 0, flag = 0, t = 0;
char ch,temp;
ch = getchar();
for (i = 0; ch != '\n'; i++){
a[i] = ch;
len++;
ch = getchar();
}
/*printf("输入测试\n");
for(i = 0; i < len; i++){
printf("%c",a[i]);
}
printf("