这个函数的实现比较简单:大家请看
需要注意的地方是目的地空间必须足够大,能够将源字符串的内容放进去
还有就是While循环的妙用
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* dest,const char* src)//源字符串的内容不发生改变,用const修饰
{
assert(dest != NULL);
assert(src != NULL);
char* ret = dest;//保存目的地的起始地址,后面要返回
while (*dest++=*src++)//当src为\0时,src将\0赋给了dest,然后表达式为0(假)退出循环,十分巧妙
{
;
}
return ret;
}
int main()
{
char arr1[] = "abcdef";
char arr2[10] = "ade";
my_strcpy(arr2, arr1);//将arr1中的所有元素包括'\0'放入arr中
printf("%s\n", arr2);
return 0;
}