我有这段代码:
str1= "a";
str2= "b";
sprintf(string, "0 %s %s\n", str1, str2);
然后字符串包含:
"0 a b"
而不是(我想要的):
"0 a b "
我该如何解决?
注意:我将var字符串的引号置于“以便您可以理解这种情况。
编辑:
答案 0 :(得分:2)
如果您使用的是Windows计算机,则可能需要\r\n
而不是换行符。图书馆应该处理它。
答案 1 :(得分:2)
看起来它适合我。我在字符串周围添加括号[]
来证明它。
答案 2 :(得分:1)
为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);
}
答案 3 :(得分:0)
听起来你想要的是sprintf(string, "0 %s %s\n\n", str1, str2);
在您的示例中,字符串实际上包含“0 a b \ n”,这意味着在\n
之后打印的任何内容都将显示在下一行。如果你想在它下面留一个空行,你需要另一个换行符。