利用指针模拟实现strcpy !!!

特别说明:由于vs2008中assert后面不能定义变量,所以将变量定义在了assert前面!!!

一:编程思想

1.利用数组传参时发生降维的特点将数组首元素的地址赋给指针变量。
2.利用指针将原数组中的字符复制到目标串中。
3.最重要的是要将原数组中的 ‘\0’ 复制到目标串中,已达到结束复制的目的。

二:代码如下

#include<stdio.h>
#include<assert.h>

void my_strcpy (char *arr2,const char *arr1)
{
	const char* ret=arr1;
	char* dst=arr2;
	assert(arr2);      //检查指针的正确性
	assert(arr1);
	while(*ret)
	{
		*dst=*ret;     //将arr1[ ]中的字符复制到arr2[ ]中   
		dst++;
		ret++;
	}
	*dst=*ret;    //将'\0'赋给目标字符串
	printf("%s\n",arr2);
}


int main( )
{
	const char arr1[ ]="I am a good boy!";
	char arr2[32];
	my_strcpy(arr2,arr1);
	return 0;
}

三:监视结果

在这里插入图片描述
在这里插入图片描述
可以看到两数组的监视结果相同,说明已将原数组中的字符复制到目标串中。

四:运行结果

在这里插入图片描述

五:对strcpy函数的简单介绍

1.调用方式: char* strcpy(char* destination, const char* source)
2. 源字符串必须以’ \0 '结束.
3. 会将源字符串的’ \0 '拷贝到目标空间.
4.目标空间必须足够大,以确保能存放源字符串.
5.目标空间必须可变.
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值