strcat函数定义
字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串。
char* strcat(char* destination, const char* source)
特点(与strcpy类似):
- 源字符串必须以'\0'结束
- 目标空间必须足够大,可以容纳下源字符串内容
- 目标空间必须可以修改
自定义函数实现
#include <stdio.h>
#include <assert.h>
char* my_strcat(char* dest, const char* src)
{
char* ret = dest;
assert(dest && src);
//找到字符串中的\0
while (*dest)
{
dest++;
}
//追加源字符串,包含\0
while (*dest++ = *src++);
return ret;
}
int main()
{
char str1[] = "hello ";
char str2[] = "world";
my_strcat(str1, str2);
printf("%s\n", str1);
return 0;
}
切记:字符串不能自己给自己追加!!
例如:
#include <stdio.h>
#include <string.h>
int main()
{
char arr[20] = "abcd";
strcat(arr, arr);
printf("%s\n", arr);
return 0;
}
结果:
原因:追加是指在目标字符串找到'\0',然后将源字符串连接在目标字符串后面。以上代码,先将arr数组'\0'改变再进行追加,程序运行时无'\0'结束标志,导致程序崩溃。