C语言库函数模拟实现strcat()
strcat是字符串追加函数,从源地址Source追加到目的地址Destination
注意 :
源字符串必须以’\0’结束。
目标空间必须足够大能容纳源字符串的内容。
目标空间必须可以修改
如何在目的地址追加字符串呢?
例:
char arr1[20] = “hello”;
char arr2[] = “world”;
在arr1后面追加arr2的内容,最后结果为 hellowold.
步骤:
- 要找到arr1中最后一个元素的地址,即==’\0’的地址,将arr2中首元素地址(w的地址)追加到arr1中’\0’的地址上,最后以arr2中的’\0’结束。
代码如下:
#include <stdio.h>
#include <assert.h>
char* my_strcat(char* dest, const char* src)
{
assert(dest && src); //确保指针有效性
char* ret = dest; //将目的地址保存起来,以便返回
//1.找到目标空间的\0
while (*dest)
{
dest++;
}
//2. 此时dest就是指向目标空间'\0'的位置
while (*dest++ = *src++)
{
;//将源空间的字符串拷贝到目标空间中
//源空间中的'\0'也拷贝过去了
}
return ret; //返回目标空间的地址
}
int main()
{
char arr1[20] = "hello";
char arr2[] = "world";
printf("%s\n", my_strcat(arr1, arr2));
return 0;
}
结果演示: