C语言小白,想问一下关于字符串删除的问题怎么做?

图片说明
顺便问一下,我的这个代码哪里出错了啊?
#include
void delChar(char sreStr[200],int num,int beginIndex,char destStr[200]);
int main()
{
char sreStr[200],destStr[200];
int num,beginIndex,a;
gets(sreStr);
scanf("%d%d",&num,&beginIndex);
delChar(sreStr,num,beginIndex,destStr);

return 0;
}
void delChar(char sreStr[200],int num,int beginIndex,char destStr[200])
{
int n=0,a,j;
while(sreStr[n]!=0)
n++;
a=n;
for(n=0;n<beginIndex - 1;n++)
{
destStr[n]=sreStr[n];
}
for(n=beginIndex-1;n<=a-num;n++)
{
for(j=a-num;j<=a;j++)
destStr[n]=sreStr[j];
}

puts(destStr);

}

2个回答

问题出在这:

for(n=0;n<beginIndex - 1;n++)
{
destStr[n]=sreStr[n];
}
for(n=beginIndex-1;n<=a-num;n++)
{
for(j=a-num;j<=a;j++)
destStr[n]=sreStr[j];
}

改成:
    j = 0;
    for(n=0;n<a;n++)
    {
        if(n<(beginIndex - 1))
            destStr[j++]=sreStr[n];
        else if(n>=(beginIndex - 1) && n<(beginIndex-1+num));
        else
             destStr[j++]=sreStr[n];
    }

还有

(https://ask.csdn.net/questions/968096 "")
采纳后继续回答

Baldboy
Baldboy 回复qtchen_1988: 好吧 再次感谢你的回答
4 个月之前 回复
qtchen_1988
qtchen_1988 回复Baldboy: 我也是菜鸟,谈不上有什么学习方法
4 个月之前 回复
Baldboy
Baldboy 回复qtchen_1988: 好的好的,万分感谢,因为自己现在刚上大一,感觉学C有点难,请问你有什么好的学习方法或建议吗
4 个月之前 回复
qtchen_1988
qtchen_1988 回复Baldboy: 这个是要删掉的字符,后面加了分号说明这段字符串不做任何事情(不用给目的数组),相当于跳过这段字符串
4 个月之前 回复
Baldboy
Baldboy 回复qtchen_1988: 好的好的 可以再问一下else if(n>=(beginIndex - 1) && n<(beginIndex-1+num));这行代码是什么意思吗
4 个月之前 回复
qtchen_1988
qtchen_1988 回复Baldboy: 你可以 char sreStr[200]={},destStr[200]={};或者添加#include<string.h> 再添加 memset(sreStr,0x0,200); memset(destStr,0x0,200);
4 个月之前 回复
qtchen_1988
qtchen_1988 回复Baldboy: 那是因为char sreStr[200],destStr[200];这两个没初始化
4 个月之前 回复
Baldboy
Baldboy 你好,修改后在得出的答案后面有一串乱码的文字
4 个月之前 回复
Baldboy
Baldboy 回复qtchen_1988: 好的,感谢
4 个月之前 回复
qtchen_1988
qtchen_1988 回复Baldboy: 已经修改上面回答,看一下,不懂还可以再问
4 个月之前 回复
Baldboy
Baldboy 请问一下应该怎么修改呢
4 个月之前 回复

建议你下断点调试下delChar这个函数。

如果需要更好的回答,请及时采纳,你的信用太差,之前回答都没有采纳,已经被投诉了

Baldboy
Baldboy 我的从free、无法调试,一调试就报错,卸载重装后也还是不行,可以问一下原因吗
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问