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

来源:互联网 发布:c语言获取系统当前时间 编辑:程序博客网 时间:2024/05/29 03:47


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所指的内存区域不可重叠
原创粉丝点击