Как я могу скопировать часть другой строки в C, учитывая начальный и конечный индекс

Как я могу скопировать строку (в C) с индексом начала и конца, так что строка будет частично скопирована (от начала индекса до конца индекса).

Это будет похоже на "C string copy" strcpy, но с начальным и конечным индексом.

Ответы

Ответ 1

Вы отметили strncpy?

char * strncpy (char * destination, const char * source, size_t num);

Вы должны понимать, что начало и конец фактически определяют num байтов, которые нужно скопировать из одного места в другое.

Ответ 2

Используйте strncpy

например.

strncpy(dest, src + beginIndex, endIndex - beginIndex);

Предполагается, что вы

  • Подтверждено, что dest достаточно велико.
  • endIndex больше beginIndex
  • beginIndex меньше strlen(src)
  • endIndex меньше strlen(src)

Ответ 3

Просто используйте memcpy.

Если место назначения не достаточно велико, strncpy не будет завершено. если пункт назначения огромен по сравнению с источником, strncpy просто заполняет пункт назначения нулями после строки. strncpy бессмысленна и непригодна для копирования строк.

strncpy как memcpy за исключением он заполняет пункт назначения нулями, когда видит один в источнике. Это абсолютно бесполезно для струнных операций. Он фиксируется с 0 заполненными записями.