husky 发表于 2015-10-21 23:23:47

关于删除字符串中的重复字符串遇到的问题,大神帮忙看看

#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';
        }
       
}


我的思路是这样子的:从第一个字符开始以此跟后面的字符比较,如果有相等的就将那个字符的后面开始以此往前挪动一位,但是一直有些字符删除不了 。

阴影中的曙光 发表于 2015-10-22 12:52:43

第二个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]
查看完整版本: 关于删除字符串中的重复字符串遇到的问题,大神帮忙看看