读书人

C/C++中memcpy与strcpy其间的区别

发布时间: 2012-09-29 10:30:01 作者: rapoo

C/C++中memcpy与strcpy之间的区别

strcpy用于字符串间的拷贝,memcpy用于内存间的拷贝

strcpy的原型:char * strcpy(char *dest,const char *src);

实现代码:

char * strcpy(char *dest,const char *src){

while((*dest++=*src++)!='\0');

return dest;

}

memcpy的原型:void *memcpy(void *dest,const void *src,size_t n);

实现代码:

 void *memcpy(void *dest,const void *src,size_t n){

char *pdest=(static_cast<char *>)dest;

const char *psrc=(static_cast<const char *>)src;

if(pdest>psrc&&pdest<psrc+n){ //同一字段间的拷贝

for(size_t i=n-1;i>=0;i--)pdest[i]=psrc[i];

}

else{

for(size_t i=0;i<n;i++)pdest[i]=psrc[i];

}

return pdest;

}

读书人网 >C++

热点推荐