当前位置: 首页 > news >正文

网站开发资金规模博客网

网站开发资金规模,博客网,济宁网站建设招聘,网站弹出代码定义 1.memcpy函数 void *memcpy(void *destin, void *source, unsigned n); 作用:函数memcpy从source指向的对象中复制n个字符到destin指向的对象中 返回值:函数memcpy返回destin的指针。 2.strcpy函数 char strcpy(char dest, const char *src); 作…

定义

1.memcpy函数

void *memcpy(void *destin, void *source, unsigned n);

作用:函数memcpy从source指向的对象中复制n个字符到destin指向的对象中

返回值:函数memcpy返回destin的指针。

2.strcpy函数

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

作用:函数strcpy把src指向的串(包括空字符)复制到dest指向的数组中,src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回值:函数strcpy返回dest的指针。

3.strncpy函数

char *strncpy(char *destinin, char *source, int maxlen);

作用:复制字符串source中的内容(字符,数字、汉字….)到字符串destinin中,复制多少由maxlen的值决定。source和destinin所指内存区域不可以重叠且destinin必须有足够的空间来容纳source的字符长度+‘\0’。

返回值:函数strncpy返回destinin的值。

实现

看看strcpy函数的实现

char *myStrcpy(char *des,char *src){if(des == NULL || src == NULL){return NULL;}//先看des和src的数据是否为nullchar *bak = des;//取des地址赋bak指针while(*src != 0){//当src的数据(p的原始数据)不为0,继续执行*des = *src;//src的数据赋值给desdes++;src++;//des和src的地址++下一个}*des = '\0';//while停止,也就是到src的数据位最后一位,此时令'\0'赋desreturn bak;
}

strncpy函数的实现

char *myStrncpy(char *des,char *src,int count){if(des == NULL || src == NULL){return NULL;}char *bak = des;while(*src != 0 && count > 0){*des++ = *src++;//src的数据先赋值给des;src++;des++count--;}if(count > 0){while(count > 0){*des++ = '\0';count--;}return des;}*des = '\0';return bak;
}

memcpy函数的实现

void * myMemcpy(void *dest, void *src, unsigned count)
{if (dest == NULL || src == NULL){return NULL;}char* pdest = (char*)dest;char* psrc = (char*)src;while (count--){*pdest++ = *psrc++;}return dest;
}

区别

1、strcpy 是依据 “\0” 作为结束判断的,如果 dest 的空间不够,则会引起 buffer overflow。

2、memcpy用来在内存中复制数据,由于字符串是以"\0"结尾的,所以对于在数据中包含"\0"的数据只能用memcpy。(通常非字符串的数据比如结构体都会用memcpy来实现数据拷贝)

3、strncpy和memcpy很相似,只不过它在一个终止的空字符处停止。当n>strlen(src)时,给dest不够数的空间里填充"\0“;当n<=strlen(src)时,dest是没有结束符"\0“的。这里隐藏了一个事实,就是dest指向的内存一定会被写n个字符。

4、strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。strncpy能够选择一段字符输出,strcpy则不能。


总结

1、dest指向的空间要足够拷贝;使用strcpy时,dest指向的空间要大于等于src指向的空间;使用strncpy或memcpy时,dest指向的空间要大于或等于n。

2、使用strncpy或memcpy时,n应该大于strlen(s1),或者说最好n >= strlen(s1)+1;这个1 就是最后的“\0”。

3、使用strncpy时,确保s2的最后一个字符是"\0”。

http://www.yayakq.cn/news/256525/

相关文章:

  • 网站模仿营销型网站设计建设公司
  • 怎么在招聘网站做评估全屏网站大小
  • 别人的网站是怎么找到的做网站要什么软件
  • 优质企业网站开发网络广告营销方案
  • ai做网站步骤北京列表网
  • 宁波网站推广软件哪家强wordpress 联盟广告位
  • 淄博桓台学校网站建设方案产品做优化好还是超级网站好
  • 快速增加网站权重乐享校园网站建设策划书
  • 国外h5汇总网站明天上海全面封控5天
  • 网站被k多久恢复做感恩网站的图片大全
  • 网站建设项目技术网站悬挂备案号
  • wordpress快站平台酒店用品网站源码
  • 网站换ip影响 百度做美食网站视频
  • 网站模板用什么打开建设银行电商网站
  • 商务网站建设工程师wordpress社群模板
  • 做网站完整过程网站空间3个g多少钱
  • 自己做网站需要下载什么软件学校网站怎么做优化
  • 深圳公司网站建设服务公司法人变更流程
  • 网站建设及网络推广赌场网站建站
  • 网站建设都需要哪些网站微信支付平台
  • 江西建设监督网站局域网站建设银行信用卡
  • 网站设计公司 宁波注册公司后每年要交什么费用
  • 图书类网站开发的背景自助免费网站建设平台
  • 宜宾网站优化一句话让客户主动找你
  • 网站前置审批高级网站开发工程师证
  • 鹿泉区城乡建设局网站重庆森林百度云
  • wap网站 链接微信3d建模需要什么学历
  • wordpress大前端1.9百度手机seo软件
  • 房屋中介网站模板天眼在线查企业查询
  • 佛山优秀网站建设网站建设捌金手指花总十一