Я использую 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"
. Правильно?
Что я делаю неправильно?