2011-03-20 43 views
0

字符串鑑於輸入〜度Zw ~~「即^李應該得到!W〜」,即^大號,而不是我收到度Zw〜「,即^大號過濾在C

所以趕上~~就好了而代之以〜但我想,以取代〜Z!

任何想法?

for (j = 0; j < dataCharCount; j++, k++) 
    { 
    if (inputData[j] == '~' && inputData[j + 1] == '~') 
    { 
     filteredInputData[k] = '~'; 
     j++; 
    } 
    else if (inputData[j] == '~' && inputData[j + 1] == 'Z') 
    { 
     filteredInputData[k] = '!'; 
     j++; 

    } 
    filteredInputData[k] = inputData[j]; 
    } 
+0

你可以通過使用你的調試器發現問題... – 2011-03-20 17:59:09

回答

3
} else { 
    filteredInputData[k] = inputData[j]; 
} 

沒有你覆蓋if語句後filteredInputData[k]的人。

0

在函數的最後一個ine之前缺少一個else。在執行替換之後,您肯定不希望將輸入複製到輸出(filteredInputData[k] = inputData[j];)。

0

循環中的最後一條語句覆蓋了您通過if聲明正文編寫的~!。它看起來好像適用於~~的原因是它將用另一個~覆蓋~。在~Z的情況下,您將用Z覆蓋您的!。使用調試器瀏覽代碼 - 您會立即看到發生了什麼。