1
替换字符我正在读一本书,它定义一个函数来替换字符数组像这样的字符:字符串使用C
void RemoveChars(char remove[], char str[])
{
int src, dst, removeArray[256];
for (src=0; src < 256; src++) {
removeArray[src] = 0;
}
src = 0;
while (remove[src]) {
removeArray[remove[src]] = 1;
src++;
}
src = dst = 0;
do {
if (!removeArray[remove[src]]) {
str[dst++] = str[src];
}
} while (str[src++]);
}
我的问题在这里,可想而知,在删除[]我们具有B-并且在str []中我们有“hi”,所以:
str[0] = 'h' and str[1] = 1
。
从我的代码中看到的,我们会做:
str[1] = str[0] --> str[1] = 'h'
但是,这意味着,我们只是重写了“我”,所以我们不能够找到它的下一次迭代权?
缺少什么我在这里?
编辑抱歉。我错过了它。 –
'dst'总是'<= src',所以代码永远不会像'str [1] = str [0]'那样评估。 – Mat
该代码仍然看起来不正确 - 我没有看到尾随的NUL在哪里下移。 – cbmanica