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
, так что это может быть очень критично для производительности, если вы делаете много таких объединений.
Есть ли какой-то более стандартный способ сделать это, выглядит лучше, чем мое решение?