Strcpy 和 memcpy 实现

来源:互联网 发布:ubuntu 虚拟机mac 编辑:程序博客网 时间:2024/05/21 21:50

-------------------------------------------strcpy------------------------------------------------------------------------

char* strcpy(char* dst,const char* src)
{
    char* strDst = dst;
    assert(src != NULL && dst != NULL);//拷贝空串被认为是没有意义的,使用assert检查
    while ((*dst++ = *src++) != '/0')
    {
        NULL;
    }
    return strDst;
}

--------------------------------------memcpy-------------------------------------------------------------------------

void* memcpy(void* dst,const void* src,size_t count)
{
    char* pbTo = (char*)dst;
    char* pbFrom = (char*)src;
    assert(dst!= NULL && src != NULL);
    assert(pbTo >= pbFrom+count || pbFrom >= pbTo + count);//防止内存重叠(overlap)

    while (count-- > 0)
    {
        *pbTo++ = *pbFrom++;
    }
    return dst;
}


原创粉丝点击