| STRCAT(3) | Library Functions Manual | STRCAT(3) |
strcat, strncat
— concatenate strings
Standard C Library (libc, -lc)
#include
<string.h>
char *
strcat(char
* restrict s, const char
* restrict append);
char *
strncat(char
* restrict s, const char
* restrict append, size_t
count);
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.
The strcat() and
strncat() functions return the pointer
s.
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));
bcopy(3), memccpy(3), memcpy(3), memmove(3), strcpy(3), strlcat(3), strlcpy(3)
The strcat() and
strncat() functions conform to
ISO/IEC 9899:1999
(“ISO C99”).
| August 11, 2002 | NetBSD 11.0 |