不用库函数,自己实现strcpy和memcpy函数

不用库函数,自己实现strcpy和memcpy函数        
82人阅读评论(0)收藏举报


1.代码实现

char* strcpy(char* strDest, const char* strSrc)
{
ASSERT(strDest != NULL && strSrc != NULL);
char* strTmpD = strDest;
while ((*strTmpD++ = *strSrc++) != '0')
{
}
return strDest ;
}

void* memcpy(void* pDest, const void* pSrc, unsigned int size)
{
ASSERT(pDest != NULL && pSrc != NULL);
byte* pTmpD = (byte*)pDest;
byte* pTmpS = (byte*)pSrc;
while (size-- >0)
{
  *pTmpD++ = * pTmpS++;
}
return pDest;
}

2.strcpy和memcpy的区别

(1).strcpy只能用于字符串拷贝;而memcpy是内存拷贝,可以拷贝任何类型的数据。

(2).当二者都进行字符串拷贝时,strcpy遇到字符串结尾'/0'即完成;而memcpy只是内存的原样拷贝,不管遇到什么。

memcpy() -- 拷贝内存内容

相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()
表头文件: #include <string.h>
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束
返回值:   返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
阅读更多
文章标签: null byte
上一篇1-2-5组合问题的最高效完整算法
下一篇GetMemory面试题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭