weixin_44764457
wei xin_44706101
采纳率86.7%
2019-03-27 10:10

求大神帮忙看看这个程序有什么错 关于把字符串中重复字符删去的问题

20
已采纳

新人小白 求教 万分感谢
#include "stdio.h"
#include "string.h"
int main()
{
char s[100];
char ss[100];
int i,j;

gets(ss);

for(i=0;i<=(strlen(ss));i++)
{ {if(strlen(ss)==1)

   printf("%s",ss);

break;}

     for(j=0;j<=(strlen(ss)-1);j++)
    {   {if(ss[j]!=ss[i])
       strcmp(s,ss);}
  puts(s);
   }

}
}

感激不尽 谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 2年前

    程序根本就不对
    strcmp(s,ss);

    strcmp的作用是比较,而你程序自始至终没有对s有过任何赋值,它一直都没有任何有意义的内容

    给你完整写了一个

    #include "stdio.h"
    #include "string.h"
    int main()
    {
        char s[100];
        char ss[100];
        int i,j,k=0;
        gets(ss);
        for(i=0;i<strlen(ss);i++)
        {
            int f = 0;
            for(j=0;j<i;j++)
            {
                if (ss[i] == ss[j])
                {
                    f = 1;
                    break;
                }
            }
            if (!f) s[k++] = ss[i];
        }
        s[k] = '\0';
        puts(s);
        return 0;
    }
    

    图片说明

    点赞 评论 复制链接分享
  • hjiamingxue hjiamingxue 2年前

    有啊
    #include "stdio.h"
    #include "string.h"
    int main()
    {
    char s[100];
    char ss[100];
    int i,j;

    gets(ss);

    for(i=0;i<=(strlen(ss));i++)
    { {if(strlen(ss)==1)

    printf("%s",ss);
    break;} /这个地方处理的太不合理,不用for,可以只用一个if条件判断就可以

     for(j=0;j<=(strlen(ss)-1);j++)
    {   {if(ss[j]!=ss[i])
       strcmp(s,ss);// 这个地方,你想 把ss[j]给s[i]吧,strcmp是做字符串函数,你可以直接使用字符赋值}
    

    puts(s);
    }
    }
    }

    #include "stdio.h"
    #include "string.h"
    int main()
    {
    char s[100];
    char ss[100];
    int i = 0,j = 0 ;

    gets(ss);

    //for(i=0;i<=(strlen(ss));i++)
    //{ {if(strlen(ss)==1)

    // printf("%s",ss);
    //break;}
    if(strlen(ss) < 1)
    {

    }else
    {

    s[0] = ss[0]; // ss的第0个字符赋给s的第0个
    for(j=1;j<(strlen(ss));j++) // for 从ss的第1个开始
    {

        if(s[i]==ss[j]) // 第一次循环 i=0,j=1,第二次循环i = 1;j = 2;;;
        {
            continue;
        }else
        {
            s[i+1] = ss[j]; // 不一样时 把ss中的第j个字符赋给s的i
            i++;
        }
    
    }
    

    }
    printf("s = %s\n",s);
    return 0;
    }

    点赞 评论 复制链接分享