#一.函数原理
strcat(字符拼接函数),其函数原型为 char* strcat(char *s1,const char *s2),功能就是s2指向的字符串追加到s1指向的字符串中间去,同时去掉s1中的‘\0’,传递s2中的’\0’。
#二.注意事项
strcat函数在使用时跟strcpy函数一样,要求s1指向的剩余空间要大于s2指向的空间,否则在值传递过程中会导致空间越界访问,从而使程序崩溃。
#三.函数调用
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char arr[10] = "abcd";
char arr1[5] = "ABCD";
strcat(arr, arr1);
printf("%s", arr);
}
正常运行结果如下:
当使arr[6]="abcd"时,运行结果如下:
此时程序能够输出预期结果,但是已经产生了越界访问,引发报警。
#四.函数实现my_strcat
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
char* my_strcat(char* s1, const char* s2)
{
while (*s1)//将s1的指针指向s1的末尾,保证追加时是从s1的\0开始
{
s1++;
}
while (*s1++ = *s2++)//循环追加
{
}
}
int main()
{
char arr[10] = "abcd";
char arr1[5] = "ABCD";
my_strcat(arr, arr1);
printf("%s", arr);
}