Bootstrap

strcpy函数及注意事项

已知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,否

;