C语言strcat()拼接字符串的用法(附带实例)
C语言标准库中的 strcat() 函数用于将源字符串的内容拼接到目标字符串后面。
查看下图,源字符串为 You\0,目标字符串为 ILove\0。字符串拼接函数会将源字符串追加到目标字符串后面,使得目标字符串变为 ILoveYou\0。

图 1 字符串拼接
strcat() 函数原型如下:
下面展示了一个使用 strcat() 函数拼接字符串的示例:
需要特别注意,目标字符串后必须有足够的空间。如果目标字符串所在的数组仅有 8 个元素,那么拼接后多出来的字符将会导致数组越界,如下图所示:

图 2 字符串拼接越界
查看下图,源字符串为 You\0,目标字符串为 ILove\0。字符串拼接函数会将源字符串追加到目标字符串后面,使得目标字符串变为 ILoveYou\0。

图 1 字符串拼接
strcat() 函数原型如下:
char * strcat (char * destination, const char * source);参数 destination 表示拼接目标字符串的首地址;参数 source 表示拼接源字符串的首地址。函数最终返回拼接后目标字符串的首地址,其实也就是参数 destination 记录目标字符串的首地址。
下面展示了一个使用 strcat() 函数拼接字符串的示例:
#include <stdio.h> #include <string.h> int main() { char dest[9] = "ILove"; char src[4] = "You"; // 拼接前 printf("%s\n", src); printf("%s\n", dest); // 拼接字符串 char * str = strcat(dest, src); // 拼接后 printf("%s\n", src); printf("%s\n", dest); printf("%s",str); return 0; }运行结果为:
You
ILove
You
ILoveYou
ILoveYou
You\0
,目标字符串为 ILove\0
。拼接后,源字符串仍为 You\0
,而目标字符串变为 ILoveYou\0
。需要特别注意,目标字符串后必须有足够的空间。如果目标字符串所在的数组仅有 8 个元素,那么拼接后多出来的字符将会导致数组越界,如下图所示:

图 2 字符串拼接越界