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

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

问题描述:

新人小白 求教 万分感谢
#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);
   }

}
}

感激不尽 谢谢

程序根本就不对
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;
}

图片说明

有啊
#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;
}