我正在使用 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"到它。对?
我究竟做错了什么?