求解:一道简单的C的题目

//找出后续字符串中与之前重复的字符并删除的算法,只能填空,不能改代码
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';//这里要填一个下标
}
}
}
}

4个回答

第一个空,idx++;第二个空,idx

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Jacce_Yang: 他这个才是对的
3 年多之前 回复
ZSGG_ACM
ZSGG_ACM 不会错啊,你自己运行看看就知道会不会错了
3 年多之前 回复
Jacce_Yang
Jacce_Yang 你这个错了吧??
3 年多之前 回复

idx++ len-1第一个空作用当前位置之后的每个值都前移,第二个空应该是给最后一个一个赋值。因为最后一个位置后面没有值前移到最后这个位置所以给默认值

第一个位置填写m=m+1;第二个位置填写m即可.

idx++
idx

填好之后运行试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问