过滤c中的字符串

时间:2011-03-20 17:52:44

标签: c

鉴于输入〜Zw ~~“iE ^ L我应该得到!w~”iE ^ L而不是我得到Zw~“iE ^ L

所以它抓住了~~就好了,用〜替换它但是我想用!替换~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];
  }

3 个答案:

答案 0 :(得分:3)

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

如果没有else,则在if语句之后覆盖filteredInputData[k]

答案 1 :(得分:0)

在最后一个函数之前缺少else。您确实不希望在执行替换后将输入复制到输出(filteredInputData[k] = inputData[j];)。

答案 2 :(得分:0)

循环中的最后一个语句会覆盖您通过~声明正文撰写的!if。它看起来适用于~~的原因是它用另一个~覆盖~。在~Z案例中,您使用!覆盖了Z。使用调试器逐步执行代码 - 您将立即看到正在发生的事情。