求大神帮忙看看这个程序有什么错 关于把字符串中重复字符删去的问题
新人小白 求教 万分感谢
#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;
}