一字尖草药图片:大师帮忙挑下错误(C语言)

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 07:06:26
【问题描述】删除字符串中的重复字符

【输入形式】输入一个字符串,全为字母字符

【输出形式】输出删除重复字符后的字符串

【样例输入】abbcbd

【样例输出】abcd

【样例说明】删除第二个和第三个“b”,保留第一个遇到的不同字符

#include<stdio.h>
#include<string.h>
main()
{
char str[50];
int i,j,k,t;

scanf("%s",str);

k=strlen(str);

for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
if(str[i]==str[j])
{
for(t=j;t<k;t++)
str[t]=str[t+1];

}

printf("%s\n",str);
}

有3个以上重复字符就出问题了,请大师帮忙解释一下,谢谢!

#include<stdio.h>
#include<string.h>
main()
{
char str[50];
int i,j,k,t,f;

scanf("%s",str);

k=strlen(str);
for(f=0;f<k;f++)
{
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
if(str[i]==str[j])
{
for(t=j;t<k;t++)
str[t]=str[t+1];
k--;
}
}
printf("%s\n",str);
getch();
}

#include<stdio.h>
#include<string.h>
main()
{
char str[50];
char dstr[50]; //保存目标串
int i,j,k,t;

int dindex = 0;
scanf("%s",str);
k=strlen(str);
for(i=0;i<k;i++)
for(j=0;j<i-1;j++) //从判断是否有在前面的字符串中出现过
if(str[i]==str[j]) //该字符在前面出现过
{
dstr[dIndex] = str[i]; //保存到目标串中
dIndex++;
break;
}

printf("%s\n",dstr);
}

我没有编译过,可能有错,不过过程是不会错的.