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

Функция strncat

#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()
Содержание | Глава 14