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

C语言中的复制函数(strcpy和memcpy)

strcpy和strncpy函数

这个不陌生,大一学C语言讲过,其一般形式为strcpy(字符数组1,字符串2)作用是将字符串2复制到字符数组1中去。

EX:

char str1[10]='',str2[]={"China"}; strcpy(str1,str2);

strncpy(str1,str2,2);作用是将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符。

memcpy函数

c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

用法:void *memcpy(void *dest, const void *src, size_t n);

EX:

char *s1 = "csdn"; char *s2 = new char[10]; char *s3 = memcpy(s2,s1,5);

strcpy和memcpy的区别

1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。

2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。

3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy

memcpy的实现

要注意,内存重叠的情况,比如

char test="abcdefghi";

memcpy(test+3,test,6);

如果从头向尾复制,结果就是abcabcabc,如下图所示,而正确结果应该是abcabcdef。

所以像这种情况应该从尾向头复制

void memcpydiy(char *dest,const char *scr,int len) { if (dest == NULL || scr == NULL) return; char *pdest = dest; char *pscr = (char *)scr; if ((scr < dest) && (dest < scr + len)) //重叠,从尾部开始复制 { pdest = pdest + len - 1; pscr = pscr + len - 1; while (len--) { *pdest-- = *pscr--; } } else { while (len--) { *pdest++ = *pscr++; } } }
http://www.jsqmd.com/news/1204318/

相关文章:

  • 2026前端框架没有最好只有最合适,四步选型法直接抄
  • 斯坦福小镇2023和2026的一些思考
  • Linux中的网络设定
  • 2026年7月最新亨得利官方服务项目及价格查询|全部网点地址与客服电话权威信息公示 - 亨得利官方博客
  • 使用leader-line.js实现Web元素可视化连接指南
  • 2026年7月卷筒式石笼网/陕西镀锌石笼网行业热门厂家_陕西合阳风和矿用设备有限公司 - 品牌宣传支持者
  • 具身智能落地关键:从大脑到指尖的物理闭环
  • 人形机器人落地断层:从Demo到量产的工程真相
  • PWM技术实战:从占空比原理到嵌入式LED调光应用
  • 欧米茄中国官方售后服务中心|官方电话及服务网点地址权威信息公示(2026年7月更新) - 欧米茄官方服务中心
  • AI模型训练全流程实战:从数据准备到生产部署
  • 机器人技术价值重估:从毫米级精度到PLd级安全的硬核拆解
  • 小鹏机器人新版技术解析:轮式具身智能的工程化落地
  • Ubuntu系统优化:7个必改设置提升200%效率
  • DeepSeek+Dify大模型微信生态接入实战指南
  • 浪琴中国官方售后服务中心|地址与售后服务电话权威信息通告(2026年7月最新) - 浪琴服务中心
  • 宇舶中国官方售后服务中心|服务电话及24小时维修地址权威信息通告(2026年7月最新) - 亨得利官方服务中心
  • 百达翡丽中国官方售后服务中心|全新地址及24小时服务电话权威信息通告(2026年7月更新) - 百达翡丽服务中心
  • 具身智能系统底座:多模态流式Infra与物理世界闭环
  • 具身智能数据基建:从物理信号到鲁棒决策的全链路实践
  • 常用:SpringBoot项目引入RabbitMQ步骤
  • Ubuntu 26.04升级必知的3大问题与解决方案
  • 具身智能落地实战:实时闭环、多模态同步与物理约束破解
  • 长沙欧米茄回收价格查询和各大平台实测排行(2026年7月最新数据) - 诚收名表回收平台
  • 浪琴中国官方售后服务中心|全新电话和详细网点地址权威信息通告(2026年7月最新) - 浪琴服务中心
  • Ubuntu 22.04国内镜像源配置指南
  • WSL2环境配置优化与常见问题解决方案
  • 2026年7月最新亨得利官方名表服务中心|详细地址和官方售后电话权威信息通告 - 亨得利官方
  • Windows系统优化工具:Chris Titus Tech实用指南
  • 2026年7月湖州高级感真丝丝巾/湖州送礼高端真丝丝巾供应商优选名单_湖州图康丝绸科技有限公司 - 品牌宣传支持者