本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。( 20分 )
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
解题思路:读入 ---- 依据码值改写另一个数组 ---- 字符形式输出另一个数组
#include <stdio.h>
int main()
{
char a[90]={
0};
a[0]=getchar ();
int b[255]={
0};
int i=0,y;
while (a[i]!='\n') //读入数据。
{
i++;
a[i]=getchar ();
}
while (i--) // 依据数据改写另一个数组。
{
y=a[i];
b[y]++;
}
for(i=0;i<255;i++) // 以字符的形式输出另一个数组
{
if(b[i]>0)
{
printf("%c",i);
}
}
}
// 注意点:1.代码主要记得 i 是取过 ' \n '的,所以记得把它去掉。
// 2.虽然题目中说过,最多80个字符,但是我们在做题中往往是
// 需要 ' \n ' 作为结束条件的,所以没有要求时尽量开大一点数组
博主是刚学习的小白,如有谬误,还望斧正。
最后,各位看官,如果觉得写得不错,能不能给个赞啊。。