用c语言过滤字符串
给定输入~Zw~~“iE^L我应该得到!w~”iE^L,而我得到的是Zw~”iE^L 所以它抓住了~~很好,用~替换它,但我想用~Z替换它 有什么想法吗用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++; }
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];
}