strncpy()

Скопировать часть строки

Прототип:

#include <string.h>
char * strncpy( char *dst,
const char *src,
size_t n );

Аргументы:

dst
Указатель на область памяти, куда требуется скопировать строку.
src
Копируемая строка.
n
Максимальное количество символов, которое требуется скопировать.

Библиотека:

libc

Описание:

Функция strncpy() копирует не более n символов из строки src, в массив dst.


Note: Копирование перекрывающихся объектов не гарантирует правильную работу. Если необходимо скопировать перекрывающиеся объекты, см. функцию memmove().

Если строка src, короче, чем n символов, нулевые символы добавляются к копии в массиве dst, до тех пор, пока все n символов не будут записаны. Если строка src длиннее n символов, то результат не завершается нулевым символом.

Возвращаемое значение:

Указатель dst.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( void )
{
char buffer[15];
printf( "%s\n", strncpy( buffer, "abcdefg", 10 ) );
printf( "%s\n", strncpy( buffer, "1234567", 6 ) );
printf( "%s\n", strncpy( buffer, "abcdefg", 3 ) );
printf( "%s\n", strncpy( buffer, "*******", 0 ) );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out abcdefg 123456g abc456g

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

memmove(), strcpy(), strdup(), strlcpy(), wcscpy(), wcsncpy(), wmemmove()




Предыдущий раздел: Описание API системной библиотеки