C函数库中的memcpy实现
来源:互联网 发布:淘宝违规词在线查询 编辑:程序博客网 时间:2024/06/04 00:55
/**copyright@nciaebupt 转载请注明出处*原型:void *memcpy(void *dest, const void *src, size_t count);*用法:#include <cstring>*功能:由src所指内存区域复制count个字节到dest所指内存区域。*说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。*使用C函数库中的memcpy**/#include <cstdio>#include <cstring>int main(int args,char ** argv){ char * src = "Hello world!"; char dest[20]; /*这里使用strlen(src)+1是因为strlen(src)返回的是src的字符的个数,不包括结束符\0 *而我们复制时希望将\0一起复制,故需要将strlen(src)加1 */ memcpy(dest,src,strlen(src)+1); printf("The dest is : %s\n",dest); getchar(); return 0;}/**copyright@nciaebupt 转载请注明出处*原型:void *memcpy(void *dest, const void *src, size_t count);*用法:#include <cstring>*功能:由src所指内存区域复制count个字节到dest所指内存区域。*说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。*自己实现memcpy*/#include <cstdio>#include <cstring>void * _memcpy(void *dest,const void * src,size_t count){ while(count--) { *((char *)dest) = *((char *)src); (char *)(dest = (char *)dest + 1); (char *)(src =(char *)src + 1); }}int main(int args,char ** argv){ char * src = "Hello World!"; char dest[20]; /*这里使用strlen(src)+1是因为strlen(src)返回的是src的字符的个数,不包括结束符\0 *而我们复制时希望将\0一起复制,故需要将strlen(src)加1 */ _memcpy(dest,src,strlen(src) + 1); printf("The length is : %d",strlen(src)); printf("The dest is : %s",dest); getchar(); return 0;}