首先转到strcat函数的定义:
char* strcat(char* dest,const char* src)
函数的返回值是目的字符串的起始地址,dest接收目的字符串的起始地址,src为源头字符串的起始地址:
例子是将''xs''拷贝到''hello''后面,具体代码是:
#include<stdio.h>
#include<assert.h>
char* my_strcat(char* arr1,const char* arr2)//源头字符串的内容不发生改变
{
assert(arr1 != NULL);
assert(arr2 != NULL);//确保指针的有效性
char* p = arr1;//记录目的字符串的起始地址
while (*arr1)//找到*arr1=‘\0’的位置
{
arr1++;
}
while (*arr1++ = *arr2++)//将arr2追加到arr1后面,从arr1中‘\0’的位置开始追加
{
;
}
return p;//返回目的字符串的起始地址
}
int main()
{
char arr1[10] = "hello";
char arr2[] = "xs";
my_strcat(arr1,arr2);
printf("%s ",arr1 );
}