首页 > 代码库 > strcpy,memcpy,memset函数实现
strcpy,memcpy,memset函数实现
strcpy 实现,只能拷贝字符串
char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!=‘\0‘); return r; }
memcpy 实现,注意目的地址和源地址重合的情况,以及强制类型转换
void *myMemCopy(void *dest,const void *src,size_t count) { char *pDest=(char *)(dest); const char *pSrc=http://www.mamicode.com/(const char *)(src); //目的地址和源地址重叠,从源地址的末尾方向开始拷贝 if( pDest>pSrc && pDest<pSrc+count ) { pDest = pDest + count-1; pSrc = pSrc + count-1; while(count--){ *pDest-- = *pSrc--; } } //目的地址和源地址不重叠,从源地址的开始方向拷贝 else { while(count--){ *pDest++ = *pSrc++; } } return pDest; }
memset函数
memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。
memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数
void* memset(void* s, int c, size_t n) { assert(str != NULL); unsigned char* p = (unsigned char*) s; while (n > 0) { *p++ = (unsigned char) c; --n; } return s; }
strcpy,memcpy,memset函数实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。