Учитывая начальный и конечный индексы, как скопировать часть строки в C?

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

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

3 ответов


вы проверили функції strncpy?

тип char * функції strncpy ( char * в пункт назначения, константный тип char * источники, реализация Нум );

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


использовать функції strncpy

например

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

это предполагает, что вы

  1. подтверждено, что dest достаточно большой.
  2. endIndex больше beginIndex
  3. beginIndex меньше strlen(src)
  4. endIndex меньше strlen(src)

просто использовать memcpy.

Если пункт назначения недостаточно велик,функції strncpy не будет завершаться null. если пункт назначения огромен по сравнению с источником,функції strncpy просто заполняет пункт назначения нулями после строки. функції strncpy бессмысленно и не подходит для копирования строк.

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