字符串拷贝的实现:
char* strcpy(char*dest,const char*src)
{
if(src == NULL)|| dest == NULL)
{
return NULL;
}
char* strDest = dest;
char* strSrc = src;
while((*strDest++ =*strSrc++)!='\0');
return dest;
}
***********
内存拷贝的函数代码如下:
void* memcpy(void *memTo,const void*memFrom,size_t size)
{
if((memTo == NULL)||(memFrom == NULL))
return NULL;
char* tempForm = (char*)memFrom;
char* tempTo = (char*)memTo;
while(size -- >0)
{
*temTo++ = *tempFrom++ ;
}
return memTo;
}
字符串拷贝与内存拷贝的区别:
1.拷贝的内容不同,strcpy()只能拷贝字符串,而memcpy()可以复制任意内容,例如字符数组,整型,结构体,类等都可以用memcpy()进行拷贝。
2.复制的方法不同;strcpy()不需要指定长度,遇到‘\0’结束,所以容易溢出;而memcpy()则是根据第3个参数size决定复制的长度;
3.用途不同;通常复制字符串用strcpy(),而需要复制其他类型数据时则一般用memcpy()。