输入一个长度不超过 100 的字符串,删除串中的重复字符,例如:输入aabbccabcacbacb,输出abc

#include<stdio.h>#include<string.h>intmain(){charstr[100];inti,j,k;for(i=0;str[i]!=0;... #include<stdio.h>
#include<string.h>
int main()
{
char str[100];
int i,j,k;
for(i=0;str[i]!=0;i++)
gets (str);
for(k=0;k<100;k++)
for(j=k+1;str[j]!=0;j++)
{
if(str[k]==str[j])
for(j=k+1;str[j]!=0;j++)
strcpy(str[j],str[j+1]);
}
for(i=0;i<100;i++)
puts (str);
return 0;
}
为什么我的程序没有输出?
请高手解答
展开
 我来答
wanda1416
2010-11-19 · TA获得超过302个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:195万
展开全部
首先:
strcpy(str[j],str[j+1]);
这句错了,str[j] 是 char 类型,strcpy 要求char*,因此应改成
strcpy(str+j,str+j+1);
其次:
gets 是输入一个字符串,输入一个字符 是 getc(char *c);
然后:
你整个代码都有问题!
正确代码应改成如下:你自己好好的理解一下吧

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char str[100];
char a[26];
int i;
gets(str);
for(i=0;i<26;i++){
a[i]=0;
}
for(i=0;i<strlen(str);i++){
if(a[str[i]-'a']==1){
strcpy(str+i,str+i+1);
i--;
}
a[str[i]-'a']=1;
}
puts(str);
system("pause");
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式