//找出后续字符串中与之前重复的字符并删除的算法,只能填空,不能改代码
void removeDuplicates(char *str){
int i, len=strlen(str);
if(str==NULL||len==1){
return;
}
for (i=0;i<len;i++){
int flag=0;
int m;
for (m=i;m<len;m++){
if(str[i]==str[m]){
flag=1;
break;
}
}
if(flag){
int n, idx=m;
for(n=idx+1;n<len;n++){
if(str[n]!=str[i]){
str[idx]=str[n];
//________;这里填一段代码,
}
str[___]='\0';//这里要填一个下标
}
}
}
}
第一个空,idx++;第二个空,idx
第一个位置填写m=m+1;第二个位置填写m即可.
idx++
idx
填好之后运行试试
idx++ len-1第一个空作用当前位置之后的每个值都前移,第二个空应该是给最后一个一个赋值。因为最后一个位置后面没有值前移到最后这个位置所以给默认值