用c语言过滤字符串

用c语言过滤字符串,c,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++; }

给定输入~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];
  }
for(j=0;j
如果没有else,您将在if语句之后覆盖
filteredInputData[k]


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

函数最后一行之前缺少
else
。您肯定不想将输入复制到输出(
filteredInputData[k]=inputData[j];
)执行替换后。

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

循环中的最后一条语句将覆盖您通过
if
语句主体编写的
~
。它看起来对
~
有效的原因是它正在用另一个
~
语句覆盖
~
。在
~Z
情况下,您被删除了r使用
Z
编写
。使用调试器逐步检查代码-您将立即看到发生了什么。

循环中的最后一条语句覆盖了通过
if
语句体编写的
。它看起来对
~
有效的原因是它已经结束了用另一个
~
编写
~
。在
~Z
的情况下,你正在用
Z
覆盖你的
。用调试器一步一步地检查你的代码-你会立即看到发生了什么。

你可以用调试器发现问题……你可以用调试器发现问题...
} else {
    filteredInputData[k] = inputData[j];
}