7-13 (带注释 )删除重复字符 (20分)

本题要求编写程序,将给定字符串去掉重复的字符后,按照字符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 ' 作为结束条件的,所以没有要求时尽量开大一点数组 

博主是刚学习的小白,如有谬误,还望斧正。
最后,各位看官,如果觉得写得不错,能不能给个赞啊。。

猜你喜欢

转载自blog.csdn.net/weixin_51304266/article/details/110734799
今日推荐