我正在使用 snprintf 将字符串连接到 char 数组:
char buf[20] = "";
snprintf(buf, sizeof buf, "%s%s", buf, "foo");
printf("%s\n", buf);
snprintf(buf, sizeof buf, "%s%s", buf, " bar");
printf("%s\n", buf);
问题是第二个连接buf
而不是添加"bar"
, 替换"foo"
它。输出如下:
foo
bar
第一个%s
应该保留buf
(在这种情况下保持"foo"
)在那里。第二个%s
应该附加"bar"
到它。对?
我究竟做错了什么?