|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#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[i] == str[j])
{
for(m=j; m<=len; m++)
{
str[m]=str[m+1];
}
j--;
len--;
}
else
continue;
}
//len--;
str[len+1] = '\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--;所以不可以这样写
|
|