#include <string.h>
char *strncat(char *str1, const char *str2, size_t count);
Функция strncat() присоединяет к строке, адресуемой параметром str1, не более count символов строки, адресуемой параметром str2, завершая «результирующую» строку str1 нулевым символом. Конечный нуль-символ, первоначально завершающий строку str1, перезаписывается первым символом строки str2. Строка str2 в результате этой операции конкатенации не меняется. Если строки перекрываются, поведение функции strncat() не определено.
В версии С99 к параметрам str1 и str2 применен квалификатор restrict.
Функция strncat() возвращает значение указателя str1.
При выполнении операций с массивами символов контроль нарушения их границ не выполняется, поэтому программист должен сам позаботиться о достаточном размере массива str1, позволяющем вместить как его исходное содержимое, так и содержимое присоединяемого массива str2.
Пример
Данная программа конкатенирует первую строку, прочитанную из стандартного входного потока stdin, ко второй строке и предотвращает переполнение массива s1, в который записывается результат. Например, если пользователь введет сначала
привет
, а затем
всем
, то программа выведет сообщение
всемпривет
#include <stdio.h>
#include <string.h>
int main(void)
{
char s1[80], s2[80];
unsigned int len;
gets(s1);
gets(s2);
/* вычисление подходящей длины */
len = 79-strlen(s2);
strncat(s2, s1, len);
printf(s2);
return 0;
}
Зависимые функции
strcat() strnchr() strncmp() strncpy()