C: Какой самый лучший и самый быстрый способ объединения строк

В настоящее время я объединяю строки в c, используяstrcat() функция отstring.h библиотека.

Я подумал об этом, и я пришел к выводу, что это должна быть очень дорогая функция, так как, прежде чем начать конкатенацию, она должна перебирать массив char, пока не найдет'\0' голец.

Например, если я конкатенирую строку"horses" 1000 раз используяstrcat()Мне придется заплатить(1 + 2 + 3 + ... + 1000) * strlen("horses") = (1000*1001)/2 * 6 = 3003000

Я подумал о нестандартном способе сохранения целого числа с длиной строки и последующей отправкиstrcat() указатель на конец строки:

strcat(dest + dest_len, "string");

В этом случае я заплачу только1000 * strlen("horses") = 1000 * 6 = 6000.

6000 намного ниже чем3003000, так что это может быть очень критично для производительности, если вы делаете много таких объединений.

Есть ли какой-то более стандартный способ сделать это, выглядит лучше, чем мое решение?

Ответы на вопрос(7)

Ваш ответ на вопрос