Учитывая начальный и конечный индексы, как скопировать часть строки в C?
В C, как я могу скопировать строку с индексами начала и конца, так что строка будет только частично скопирована (от индекса начала до индекса конца)?
Это будет похоже на 'C string copy'strcpy
, но с индексом начала и конца.
3 ответов
вы проверили функції strncpy?
тип char * функції strncpy ( char * в пункт назначения, константный тип char * источники, реализация Нум );
вы должны понять, что начать и конец на самом деле определяет num байтов для копирования из одного места в другое.
использовать функції strncpy
например
strncpy(dest, src + beginIndex, endIndex - beginIndex);
это предполагает, что вы
- подтверждено, что
dest
достаточно большой. -
endIndex
большеbeginIndex
-
beginIndex
меньшеstrlen(src)
-
endIndex
меньшеstrlen(src)
просто использовать memcpy.
Если пункт назначения недостаточно велик,функції strncpy не будет завершаться null. если пункт назначения огромен по сравнению с источником,функції strncpy просто заполняет пункт назначения нулями после строки. функції strncpy бессмысленно и не подходит для копирования строк.
функції strncpy как memcpy за исключением того, что он заполняет назначение нулями, как только он видит его в источнике. Это абсолютно бесполезно для строковых операций. Это исправлено с 0 мягкий записей.