<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;
}
缺点:多执行了一步后置++,虽然对函数功能无影响,不太好理解
优点:代码简洁
原文:http://blog.csdn.net/zongyinhu/article/details/45180009