Почему бы не использовать snprintf
?В отличие от strncat
он ожидает размер буфера, но, что более важно, здесь нет скрытого O (n).
Strcat должен находить нулевой терминатор в каждой строке, которую он объединяет, и каждый раз проходить черезвесь буфер, чтобы найти конец.Каждый раз, когда строка становится длиннее, strcat замедляется.Спринтф, с другой стороны, может следить за концом.вы обнаружите, что
snprintf(buf, sizeof buf, "%s%s%s", "String1", "String2", "String3");
часто является более быстрым и более читаемым солютоном.