C语言模仿库函数strcpy
作者:互联网
strcpy()模仿
int main(){
char arr1[20] = "xxxxx";
char arr2[] = "hello"
my_strcpy(arr1,arr2); //1,目标地址 2,源地址
printf("打印arr1的结果是:%s",arr1);
//结果是:hello
return 0;
}
模仿代码如下:
void my_strcpy(char* dest,char* src){
//V1版本,实现copy功能
{
//字符数组有个隐藏元素‘\0’,为字符串终止符
while(*src != '\0'){
*dest = *src;
dest++;
src++;
}
//最后一步将‘\0’也复制过去
*dest = *src;
}
//V2
{
while(*src != '\0'){
//改为后置++,执行计算后指针自动向后移动一位
*dest++ = *src++;
}
*dest = *src;
}
//V3
{
//将赋值表达式放入条件
//赋值也会有返回值(返回值就是右值),不为0即是true
//最后为\0时,ascii码则为0,判断为false
while(*dest++ = *src++){
;
}
*dest = *src
}
//V4
#include <assert.h>
//在入参时,限制*src源数组为const
//这一步可以保护你在编写代码时,将两参数写反了的情况
//例如while里面变成(*src++ = *dest++)
//此时*src为const修饰,不可被修改,代码将无法运行成功,idea中也无法编译通过
void my_srtcpy(char* dest,const char* src)
{
//限制入参不可为空
assert((src != NULL) && (dest != NULL)); //断言,如果不符合条件即程序报错
while(*dest++ = *src++){
;
}
*dest = *src
}
标签:src,dest,c++,C语言,char,++,while,strcpy,库函数 来源: https://www.cnblogs.com/smallChicken/p/16444703.html