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

原创粉丝点击