Содержание | Глава 14

Функция strncpy

#include <string.h>
char *strncpy(char *str1, const char *str2, size_t count);

Функция strncpy() копирует не более count символов из строки, адресуемой параметром str2, в массив, адресуемый параметром str1. Параметр str2 должен указывать на строку, заканчивающуюся символом конца строки.

В версии С99 к параметрам str1 и str2 применен квалификатор restrict.

Если заданные массивы символов перекрываются, поведение функции strncpy() не определено.

Если длина строки, адресуемой параметром str2, меньше значения count, то в конец строка - результата str1 добавляются "недостающие" нулевые символы.

Если же длина строки, адресуемой параметром str2, больше значения count, то строка - результат, адресуемая параметром str1, не будет заканчиваться символом конца строки[1].

Функция strncpy() возвращает значение указателя str1.

Пример

Следующий фрагмент программы копирует не более 79 символов из строки str1 в строку str2, тем самым гарантируется, что массив не переполнится.

char str1[128], str2[80];

gets(str1);
strncpy(str2, str1, 79); 

Зависимые функции

memcpy() strchr() strncat() strncmp()

----------

[1]Обратите внимание, что такую "строку " считать полноценной нельзя, ведь некоторые строковые функции работать с подобными строками могут некорректно.


Содержание | Глава 14