Я пытаюсь понять метод для конкатенации строк, предложенный в «Стандартной библиотеке Си».
После обсуждения того, как объединить две строки, s1 и s2. Автор предлагает, что для нескольких строк (более 2),
"... одобрить форму, такую как strcpy(s1 += strlen(s1), s2)
, которая сохраняет повторные и постоянно увеличивающиеся повторные сканирования начальной части строки ..." (стр. 395)
У меня проблемы с осмыслением этого фрагмента кода. Насколько я понимаю, он добавляет к указателю длину s1
, чтобы передать индекс символа Null в strcpy, так что strcpy не придется перебирать s1, чтобы найти символ Null, и он может просто начать копирование s2 в s1, это правильно?
Если мое понимание верно, как это может привести к какой-либо эффективности, когда вместо strcpy strlen все равно придется перебирать строку, чтобы определить ее длину?