您的位置:首页 > 其它

strcpy与memcpy的区别

2016-04-18 19:09 435 查看

strcpy与memcpy的区别

1.复制的内容不同:strcpy()只能复制字符串,而memcpy()可以复制任意内容,例如字符数组、整型、结构体、类等。

2.复制的方法不同:strcpy()不指定长度,它遇到被复制字符串结束符”\0”才结束拷贝,所以容易溢出。

memcpy()则是根据其第三个参数决定复制的长度。

3.用途不同:通常在复制字符串时用strcpy(),而需要复制其他类型数据时则一般用memcpy()。

#include <iostream>
#include <assert.h>
usingnamespacestd;
// 为了实现链式操作,将目的地址返回,strcopy()可作为其它函数的参数(实参)
char* strcopy(char* dest,const char* src)
{
assert(dest != NULL && src!= NULL); // 指针安全检查
while ((*dest++ = *src++) != '\0');
return dest;
}

void* memcopy(void* dest,const void* src,size_t cout)
{
assert(dest != NULL && src != NULL); // 指针安全检查
char* pDest = (char *)dest;
char* pSrc = (char *)src;
while(cout--)
{
*pDest++ = *pSrc++;
}
*pDest = '\0';
return dest;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: