NAME
strcat,
strncat —
concatenate strings
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <string.h>
char *
strcat(
char *
restrict s,
const char *
restrict append);
char *
strncat(
char *
restrict s,
const char *
restrict append,
size_t
count);
DESCRIPTION
The
strcat() and
strncat() functions append
a copy of the nul-terminated string
append to the end of
the nul-terminated string
s, then add a terminating
‘
\0
’. The string
s
must have sufficient space to hold the result.
The
strncat() function appends not more than
count characters where space for the terminating
‘
\0
’ should not be included in
count.
RETURN VALUES
The
strcat() and
strncat() functions return
the pointer
s.
EXAMPLES
The following appends “
abc
” to
“
chararray
”:
char *letters = "abcdefghi";
(void)strncat(chararray, letters, 3);
The following example shows how to use
strncat() safely in
conjunction with
strncpy(3).
char buf[BUFSIZ];
char *input, *suffix;
(void)strncpy(buf, input, sizeof(buf) - 1);
buf[sizeof(buf) - 1] = '\0';
(void)strncat(buf, suffix, sizeof(buf) - 1 - strlen(buf));
The above will copy as many characters from
“
input
” to
“
buf
” as will fit. It then appends as many
characters from suffix as will fit (or none if there is no space). For
operations like this, the
strlcpy(3) and
strlcat(3) functions are a
better choice, as shown below.
(void)strlcpy(buf, input, sizeof(buf));
(void)strlcat(buf, suffix, sizeof(buf));
SEE ALSO
bcopy(3),
memccpy(3),
memcpy(3),
memmove(3),
strcpy(3),
strlcat(3),
strlcpy(3)
STANDARDS
The
strcat() and
strncat() functions conform
to
ISO/IEC 9899:1999
(“ISO C99”).