C语言编程题————函数实现模拟字符串拷贝函数

void   my_strcpy(char* arr1, char* arr2){
	while (*arr2 != '\0'){
		*arr1 = *arr2;     //把*arr2指向的第一个元素给*arr2指向的第一个元素
		*arr1++;
		*arr2++;
	}
	*arr1 = *arr2;//里面循环遇到'\0'就停了,所以在外面把'\0'再赋給*arr1;
}
int main(){
	char arr1[] = "*************";
		char arr2[] = "chaoge";
		my_strcpy(arr1, arr2);//模拟实现字符串拷贝函数,字符串拷贝函数是把'\0'也考进去的
		printf("%s", arr1);
	return 0;
}

满分版

#include<assert.h>
                     //加const因为*src指向的内容不能改变
char* my_strcpy(char* dest, const char* src){
	assert(dest != NULL);//断言,测试是不是null是报错
	assert(src != NULL);//目的操作数和源操作数都不等于空指针
	//strcpy是有返回值的,返回目的操作数的地址;
	char* ret = dest;  //因为下面程序把dest改变了,所以dest先存ret
	while (*dest++ = *src++){
		;
	}
	return ret;
}
int main(){
	char arr1[] = "*************";
	char arr2[] = "chaoge";
	my_strcpy(arr1,arr2);
	             //返回来相当于数组首地址
	printf("%s", my_strcpy(arr1, arr2));
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值