关于删除字符串中的重复字符串遇到的问题,大神帮忙看看
#include <stdio.h>#include <string.h>
void String_Delete(char str[]);
int main()
{
char str[] = "xazsxazcqwlzxy";
String_Delete(str);
printf("the after:%s\n",str);
return 0;
}
void String_Delete(char str[])
{
int len = strlen(str);
int i,j,m;
for(i=0; i<len; i++)
{
for(j=i+1; j<len-i; j++)
{
if(str == str)
{
for(m=j; m<=len; m++)
{
str=str;
}
j--;
len--;
}
else
continue;
}
//len--;
str = '\0';
}
}
我的思路是这样子的:从第一个字符开始以此跟后面的字符比较,如果有相等的就将那个字符的后面开始以此往前挪动一位,但是一直有些字符删除不了 。 第二个for循环for(j=i+1; j<len-i; j++)改成for(j=i+1; j<len; j++)减i去掉,我知道的减去i的意思是j的循环根据j从数组哪位开始而定,假定10(0~9)位的字符串从1开始循环9-1=8次,从2开始就是9-2=7次,但是注意这里的情况是10位字符串,长度不变,但是这个题里你改变了字符串的总长度len--;所以不可以这样写
页:
[1]