【发布时间】:2011-11-17 14:16:44
【问题描述】:
我有这个代码:
str1= "a";
str2= "b";
sprintf(string, "0 %s %s\n", str1, str2);
字符串然后包含:
“0 a b”
而不是(我想要的):
"0 a b "
我该如何解决?
注意:我将 var 字符串的引用放在 " 中,以便您了解情况。
编辑:
问题解决了 我在尺寸上加了 1,它就起作用了。我不完全明白为什么,但它已经解决了
【问题讨论】:
-
你怎么知道那个字符串不正确?尝试打印它或在调试器中查看它的所有字符。
-
您的
string将在其末尾添加一个换行符(您如何发现它没有?)。确保string足够大以容纳结果。 -
strsize = (2 + 1 + 1 + 1 + 2 + 1) * sizeof(char);
-
发布一个完整的例子来展示这个问题。您显示的代码是正确的。
-
如果您发布了整个示例,我们可以告诉您原因。