【发布时间】:2021-01-18 23:24:28
【问题描述】:
您好,以前可能有人问过这个问题,但我找不到问题的答案。
for (int i = 0; i < StrLenght - 1; i++) {
if (szPattern[i] == '%') {
// DO stuff....
} else {
szBuffer[i] = szPattern[i];
}
}
所以,在 if 语句之前一切似乎都很好,我的意思是 szPattern 已正确写入 szBuffer,但是一旦我进入if 语句没有写入 szBuffer.... 我怀疑这是因为以空字符结尾的字符串“\0”.. 知道如何解决这个问题吗? 谢谢.. :)
【问题讨论】:
-
对于您发布的代码,
szPattern必须是char的数组。 -
是的罗伯特,szBuffer 和 szPattern 都是 char 数组
-
C标签不适用于C++代码 -
确实,很抱歉,
-
没有足够的代码。但我确实想知道 szBuffer[] 和 szPattern 是否有不同的长度......如果 '%' 代码在 % 之后拾取另一个字符,就像 sprintf() 格式一样,你的传入 i 和传出 i 变得不同步。在这种情况下,您将需要一个 'b' 缓冲区和 'p' 模式变量,它们会酌情增加。;