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 字符串拼接越界