代码实现:

#include <stdio.h>
#include <assert.h>

char* My_strcpy(char* to, const char* from)
{
	assert(to && from);

	//strcpy的返回值为目标字符串的首地址
	//因为后面我们会更改指向目标字符串首地址指针的值
	//所以现在先记录下来,以便函数结束时更易返回
	char* ret = to;

	//当*to 与*from皆为'\0'时
	//expression依然会执行,当此条执行结束
	//结果为0,循环停止
	while (*to++ = *from++)
	{
		;//循环体为空
	}

	return ret;
}
int main()
{
	char source[20] = "This is my strcpy";
	//char destination[20] = { 0 };
	char destination[20] = { 0 };

	My_strcpy(destination, source);

	printf("%s\n", destination);

	return 0;
}

运行结果:

模拟实现【strcpy】函数_代码实现