我有这个代码:
str1= "a"; str2= "b"; sprintf(string, "0 %s %s\n", str1, str2);
string然后包含:
“0 ab”
而不是(我想要的):
“0 ab “
我该如何解决这个问题?
注意:我把varstring的引用放在“里面”,这样你就可以理解这个情况了。
编辑:
如果您在Windows计算机上,则可能需要\r\n
而不是仅换行符。 图书馆应该处理它。
看起来像它为我工作。 我把括号[]
括在字符串中来证明它。
看看这里: http : //ideone.com/3rbwF
为string
分配足够的空间
#include <stdio.h> #include <stdarg.h> main() { char string[7]; char str1[] = "a"; char str2[] = "b"; sprintf(string, "0 %s %s\n", str1, str2); printf("%s", string); }
这听起来像你想要的是sprintf(string, "0 %s %s\n\n", str1, str2);
在你的例子中,字符串实际上包含“0 ab \ n”,这意味着在\n
之后打印的任何东西都会出现在下一行。 如果你想要一个下面的空行,你需要另一个换行符。