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]