Ответ 1
Вы отметили strncpy?
char * strncpy (char * destination, const char * source, size_t num);
Вы должны понимать, что начало и конец фактически определяют num байтов, которые нужно скопировать из одного места в другое.
Как я могу скопировать строку (в C) с индексом начала и конца, так что строка будет частично скопирована (от начала индекса до конца индекса).
Это будет похоже на "C string copy" strcpy
, но с начальным и конечным индексом.
Вы отметили strncpy?
char * strncpy (char * destination, const char * source, size_t num);
Вы должны понимать, что начало и конец фактически определяют num байтов, которые нужно скопировать из одного места в другое.
Используйте strncpy
например.
strncpy(dest, src + beginIndex, endIndex - beginIndex);
Предполагается, что вы
dest
достаточно велико.endIndex
больше beginIndex
beginIndex
меньше strlen(src)
endIndex
меньше strlen(src)
Просто используйте memcpy.
Если место назначения не достаточно велико, strncpy не будет завершено. если пункт назначения огромен по сравнению с источником, strncpy просто заполняет пункт назначения нулями после строки. strncpy бессмысленна и непригодна для копирования строк.
strncpy как memcpy за исключением он заполняет пункт назначения нулями, когда видит один в источнике. Это абсолютно бесполезно для струнных операций. Он фиксируется с 0 заполненными записями.