Name
strcat - concatenate two strings
Synopsis
1
2
3
#include <string.h>
char *strcat(char *dest, const char *src);
 
Description
The strcat() function appends the src string to the dest string,
overwriting the terminating null byte (‘\0’) at the end of dest, and
then adds a terminating null byte. The strings may not overlap, and the 
dest string must have enough space for the concatenated result.
If dest is not large enough, program behavior is unpredictable; 
buffer overruns are a favorite avenue for attacking secure programs.
The strncat() function is similar, except that it will use at 
most n bytes from src; and src does not need to be 
null-terminated if it contains n or more bytes. As with strcat(),
the resulting string in dest is always null-terimated.
If src contains n or more bytes, strncat writes n+1 bytes
to dest (n from src plus the terminating null byte). Therefore,
the size of dest must be at least strlen(dest)+n+1.
Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <assert.h>
#include <string.h>
int main() {
    char src[7] = "world!";
    char dest1[12] = "hello";
    char dest2[12] = "hello";
  
    // Concatenate the entire src string to dest1.
    strcat(dest1, src);
    assert(strcmp(dest1, "helloworld!") == 0);
    // Concatenate 5 characters from src to dest2.
    strncat(dest2, src, 5);
    assert(strcmp(dest2, "helloworld") == 0);
}
 
Return Value
Upon completion, the strcat() and strncat() functions return 
a pointer to the resulting string dest.