前言:
大家都知道strcpy是C语言的一个库函数,那么如何来实现这样的库函数功能呢?
一、了解函数的基本功能和用途
strcpy这个库函数呢,是一个对字符串操作的一个函数,它的头文件——#include<string.h> 是专门用来对字符串进行操作的C语言头文件,它的主要功能就是把源字符串的内容复制到 目标字符串当中,那么具体的函数格式如下:
strcpy(源字符串,目标字符串);
二、分析功能
那么我们来大概分析一下,使用过的小伙伴都知道他有啥功能
1.不允许源字符串和目标字符串为空,也就是NULL。
2.若源字符串或目标字符串任何一个为空则会警告也就是断言。
3.格式不能变必须是前面是源字符串,后边是目标字符串。
三、匹配对应的功能
1.第一个功能是源字符串或者目标字符串任意一方为空,也就是函数传来的实际参数不可以用为空
2.第二个功能是有断言
那么我们不难发现,以上这两个功能都可以直接通过断言函数进行实现,因为断言函数有判断功能也有具体警告功能岂不是一石二鸟,对吧?当然了并不是一定要用断言函数,你也可以用if语句去判断然后风情况进行反馈,不过这个反馈功能可不好写,对具体的错误原因和具体的行数都要进行
反馈,新手不容易写出来,尽量还是用断言函数,能群殴,何必单挑呢?对吧。
3.第三个功能是格式不能变,这个也好说直接用const关键字进行修饰就好了 。
好了,那么我们废话不多说,直接进入激动人心的上才艺环节。
四、函数的具体实现
#include <stdio.h>
#include <assert.h>//断言库函数的头文件
void my_strcpy(const char* dest, char* src)
{
assert(src != NULL && dest != NULL);//断言
while (*src++ = *dest++)
{
;
}
}
int main()
{
char arr1[] = "wonengxing";//创建源字符串数组
char arr2[] = "nibuxingde";//创建目标字符串数组
my_strcpy(arr1, arr2);//创建自定义函数
printf("%s\n", arr2);//打印目标字符串内容,以展示效果
return 0;
}
好了,以上就是我关于C语言strcpy库函数模拟实现的全过程,写的不好还请多多包含,我还将会更新C语言中的strlen库函数的模拟实现,敬请期待!!!