其他分享
首页 > 其他分享> > C语言模仿库函数strcpy

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