<span style="font-size:32px;color:#009900;">代码:</span>
#include<stdio.h>
char *my_strcpy(char *dest,const char *src)
{
char *ret = dest;//保存数组的首地址,下面的操作会改变dest的值
while((*dest = *src) != '\0')//将src数组的内容全部赋给dest,包括'\0',当'\0'拷贝过去之后拷贝完成即函数结束
{
src++;
dest++;
}
return ret;
}
int main()
{
char a[20] = "acdefghiji";
char b[] = "edfssss";
printf("%s\n",my_strcpy(a,b));
return 0;
}
mystrcpy也可以改的更加简洁:see:
char *my_strcpy2(char *dest,const char *src)
{
char *ret = dest;
while((*(dest++) = *(src++)) != '\0');
return ret;
}
缺点:多执行了一步后置++,虽然对函数功能无影响,不太好理解
优点:代码简洁