本文主要介绍C语言库函数strcpy()的模拟实现
- 基本模型:
char * strcpy ( char * destination, const char * source );- 参数介绍:
Para1:char* destination, 指向将字符串拷贝到目的地。
Para2:const char* source, 将要拷贝的字符串。- 返回值介绍:
返回目的地地址
函数实现
#include <stdio.h>
#include <assert.h>
char* my_strcpy(char* dest, const char* src)
{
//断言,目的地和字符串指针都不能为空
assert(dest != NULL && src != NULL);
//记录起始位置,便于返回目的地地址
char* start = dest;
//找到将字符串的第一个字符赋值给目的地的第一个字符,++依次赋值...
//当遇到'\0'时,表达式*dest++ = *src++的值为0,退出循环
while (*dest++ = *src++)
{
;
}
return start;
}
int main()
{
char arr1[20] = { 0 };
char arr2[] = "hello, word!";
char* ptr = my_strcpy(arr1, arr2);
printf("%s\n", ptr);
printf("%s\n", arr1);
return 0;
}
输出结果:
函数第二个参数为什么是const char* ?加const 有什么用?
- const 修饰指针变量有两种形式,这里是指常量指针,意思是指针指向的内容无法改变。
- 加const修饰src指针的作用是:防止源字符串被修改,保证了函数的安全性。
如果想了解更多关于const修饰指针的内容,请查看【const修饰指针] 常量指针和指针常量的关系