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;
}