Both functions append to an existing memory array instead of returning a
new string that contains the concatenation. Generally, returning a new string
is more convenient, but it is impossible if you work with character arrays.
The strcat function does not check whether it exceeds the target array's
capacity. The strncat function can be used instead, but it is cumbersome
to compute the maximum number of characters to copy, and even more cumbersome
to deal with the 0 terminator. The + operator simply allocates a string of
the correct size.