1.什么是strcpy?
strcpy把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char * ,例如strcpy(arr1, arr2); 即为 把数组arr2的内的字符串,复制到arr1中 。
注意:在字符串拷贝的过程中,'\0'也会被拷贝。
2.如何实现my_strcpy?
strcpy的主要功能是复制,那么如何将arr2内的字符串复制到arr1中呢?很简单,只需通过指针将arr2中字符地址赋给arr1。
代码实现:
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest, const char* src) //给src加const防止dest和src弄混后产生错误
{
char* ret = dest;
assert(dest && src); //避免传的是空指针
while (*dest++ = *src++) //通过指针将src的字符串复制给dest
{
;
}
return ret;
}
int main()
{
char arr1[20] = "xxxxxxxxx";
char arr2[] = "happy";
printf("%s\n", my_strcpy(arr1, arr2));
return 0;
}