【C语言】my_strcpy的实现(经典,简单,实用,收藏)

C语言函数库中定义的strcpy是什么样的?

在这里插入图片描述

在这里插入图片描述
这是cpulspuls上面的注解(点击进入注解网页),大家感兴趣可以仔细进网站看看。
标准解释告诉我们,strcpy的返回类型为char*,也就是字符指针类型,相当于字符串数组首地址,而函数strcpy(arr1,arr2)的作用就是将arr2的内容copy到arr1中,但是arr2中的内容不变
下面是cplusplus上举的例子:

/* strcpy example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str1[]="Sample string";
  char str2[40];
  char str3[40];
  strcpy (str2,str1);
  strcpy (str3,"copy successful");
  printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3);
  return 0;
}

输出:

str1: Sample string
str2: Sample string
str3: copy successful

--------------------------------------------------------------------------------------------------------------------------------------

如何快准狠写出自己的my_strcpy?

下面是我的方法,附带注解,望大佬指正!
在这里插入图片描述

#include<stdio.h>
char* my_strcpy(char* destination,const char* resource)//这个const可是非常重要的,可是非常重要的,因为arr2是我们不想修改的
{
	char* ret = destination;//记住目标的地址,后面作为return的对象
	while(*destination++=*resource++)//这里当*resource的内容不为\0的时候,其内容远远不断的赋值给
	{                                //arr1也就是目标字符串,最后当\0赋值完毕的时候,while()循环
		;                            //判定条件为假,终止操作,这时我们的目的也已经达成。
	}
	return ret;//返回已经修改的字符串的首地址,相当于返回了修改的目标字符串
}
int main()
{
	char arr1[] = {"xxxxxxxxxxxx"};
	char arr2[] = {"jinitaimei"};
  	my_strcpy(arr1,arr2);//调用函数
	printf("%s\n",arr1);
	return 0;
}

朋友,我想,你也不想白嫖吧[doge]
在这里插入图片描述

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 40
    评论
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值