已知strcpy函数的原型是:
char *strcpy(char *dst, const char *src);
要求:
1、实现strcpy函数
2、解释为什么要返回char *
3、假如考虑dst和src内存重叠的情况,strcpy该怎么实现
一:strcpy实现代码:
char * strcpy(char *dst,const char *src) //[1]
{
assert(dst != NULL && src != NULL); //[2]
char *ret = dst; //[3]
while ((*dst++=*src++)!='\0'); //[4]
return ret;
}
[1]const修饰
源字符串参数用const修饰,防止修改源字符串。
[2]空指针检查
(A)不检查指针的有效性,说明答题者不注重代码的健壮性。
(B)检查指针的有效性时使用assert(!dst && !src); 不能简单返回NULL,否