C语言去掉重复字符再排序

输入一个以回车结束的字符串(少于80个字符),去掉重复的字符后,按照字符ASCII码顺序从小到大排序输出。求大神帮忙,尤其是不知道怎么去掉重复字符,

char a[30] = "qweasdzxcvbnhbgfvredcxswqazx";
for (int i = 0; i < 30; i++) {

printf("%c",a[i]);

for (int j = 0; j < i; j++) {

if (a[i] == a[j]) {

a[i] = '0';

}

}

}printf("\n");

for (int i = 0; i< 30; i++) {

if (a[i] != '0') {

printf("%c",a[i]);

}

}
用两个for循环,将字符串的每一个字符和前一个进行比较,如果有一个相同,将他等于字符串内不同的一个字符(很重要),然后另作一个for循环,将不含有这个字符的字符串输出
qweasdzxcvbnhbgfvredcxswqazx

qweasdzxcvbnhgfr

还给你一个方法,先排序,然后将,a[i]==a[i+1]的时候,将a[i]='0',也可以做出来,但是位置变化了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-25
没有分,我就给你一个思路吧。
定义一个数组 Letter[128],代表128个ASCII的字符,然后遍历字符串,假如出现a,则Letter[48] = 1,依次类推,最后输出时Letter里哪个是1就输出,是零就不输出。
就可以满足按照字符ASCII码顺序从小到大排序输出本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网