#include
#include
int main()
{
char c,str[80];
int i=0,j,k,len;
printf("input:");
gets(str);
len=strlen(str);
c=str[i];
while(c!='\0')
{
for(j=i+1;str[j]!='\0';j++)
{
if(str[j]==c)
{
for(k=j;str[k]!='\0';k++)
str[k]=str[k+1];
len--;
}
}
c=str[i++];
}
puts(str);
getchar();
}
改动后可以运行了,你的错误:
1.包含的第二个头文件少写个h
2.在发现重复字符后需要删除时,if语句里for循环使用了j和外面大循环的j重复,会造成不可预料的错误
3.else后面的赋值不正确,应该等第一个for循环结束后,而不是if判断后
这个可以了!
#include
你的程序我就懒得看啦。不过呢,可以根据我的经验给你个思路。可以来一个类似于冒泡法的算法函数,逐一循环比较该字符串的ASCII码值,相同去掉,不同丢到一个数组中去。