字符串追加
int main(void)
{
char arr1[20] = "hello,";
char arr2[] = "bit";
strcat(arr1, arr2);
printf("%s\n",arr1);
return 0;
}
#注意事项
- 源字符串中必须有
\0
,目标字符串中必须有\0
.- 假如没有\0,会进行越界访问,很危险
- 目标空间必须足够大,能放下连接后的内容
- 目标空间可修改
模拟实现
#模拟实现
char* my_strcat(char* dest, char* src)
{
assert(dest && src);
//找目标空间的\0
char* ret = dest;
while (*dest)
{
dest++;
}
while (*dest++ = *src++)
{
;
}
return ret;
}
int main(void)
{
char arr1[20] = "hello,";
char arr2[] = "bit";
my_strcat(arr1, arr2);
printf("%s\n",arr1);
return 0;
}
小bug:自己追加自己
可能会造成死循环
但是库函数里面是没有问题的,所以我们的写法还是需要改变的