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