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
	}
posted @   小小鸡炖蘑菇  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示