NAME
strcat
, strncat
— concatenate strings
SYNOPSIS
#include
<string.h>
char *
strcat
(char
*s, const char
*append);
char *
strncat
(char
*s, const char
*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), strlcpy(3), wcscat(3), wcslcpy(3)
STANDARDS
The strcat
() and
strncat
() functions conform to ANSI
X3.159-1989 (“ANSI C89”).
HISTORY
The strcat
() function first appeared in
the Programmer's Workbench (PWB/UNIX) and was ported to
Version 7 AT&T UNIX;
strncat
() first appeared in
Version 7 AT&T UNIX.