STRCAT(3)

ИМЯ
strcat, strncat - объединяет две строки

ОБЗОР
#include <string.h>

char *strcat(char *dest, const char *src);

char *strncat(char *dest, const char *src, size_t n);

ОПИСАНИЕ
Функция strcat() добавляет строку src к строке dest, перезаписывая байт null ('\0') в конце dest и добавляет завершающий байт null. Строки не могут перекрываться, а в строке dest должно хватать свободного места для размещения объединённой строки.

Функция strncat() работает аналогичным образом, но

*   задействует не менее n первых байт строки src и

*   строка src может не завершаться байтом null, если в ней содержится n или более байт.

Как и strcat(), строка-результат в dest всегда заканчивается байтом null.

Если в src содержится n или более байт, то strncat() записывает n+1 байт в dest (n из src плюс завершающий байт null). Поэтому размер dest должен быть не менее strlen(dest)+n+1. Простейшей реализацией strncat() может быть:
char*
strncat(char *dest, const char *src, size_t n)
{
    size_t dest_len = strlen(dest);
    size_t i;
    for (i = 0 ; i < n && src[i] != '\0' ; i++)
        dest[dest_len + i] = src[i];
    dest[dest_len + i] = '\0';
    return dest;
}

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Функции strcat() и strncat() возвращают указатель на скопированную строку dest.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.3BSD, C89, C99.

СМОТРИТЕ ТАКЖЕ
bcopy(3), memccpy(3), memcpy(3), strcpy(3), string(3), strncpy(3), wcscat(3), wcsncat(3)