#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; }