memcpy和strcpy的区别

  • strcpy和memcpy主要有以下3方面的区别
    • 复制的内容不同
    • 用途不同
    • 从s1复制字符串到s2strncpy和memcpy很相似,只不过它在一个终止的空字符处停止。

strcpy和memcpy主要有以下3方面的区别

复制的内容不同

strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,如果空间不够,就会引起内存溢出。memcpy则是根据其第3个参数决定复制的长度。

用途不同

通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy,由于字符串是以“\0”结尾的,所以对于在数据中包含“\0”的数据只能用memcpy。

从s1复制字符串到s2strncpy和memcpy很相似,只不过它在一个终止的空字符处停止。

当n>strlen(s1)时,给s2不够数的空间里填充“\0”(n为s2的空间大小);当n<=strlen(s1)时,s2是没有结束符“\0”的,所以使用strncpy时,确保s2的最后一个字符是“\0”。

memcpy和strcpy的区别 ?相关推荐

  1. C语言 memcpy 和 strcpy 函数区别 - C语言零基础入门教程

    目录 一.memcpy 函数/strcpy 函数简介 二.memcpy 函数/strcpy 函数实战 1.strcpy 函数属于字符串拷贝 2.memcpy 函数属于内存拷贝 三.猜你喜欢 零基础 C ...

  2. [收集] C++ memset ,memcpy 和strcpy 的区别

    Memset  用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为' '或'\0': 例:char a[100];memset(a, '\0', sizeof(a)); mems ...

  3. memcpy和strcpy的区别及memcmp和strcmp的区别

    strcpy与memcpy的区别: strcpy的原型:char *strcpy(char *dest, const char *src) strcpy是拷贝字符串.①不指定长度②以\0为标志结束(即 ...

  4. 拷贝函数memcpy和strcpy的用法及区别

    memcpy和strcpy的区别 memecpy拷贝,是内存之间的拷贝.strcpy是字符串的拷贝 memcpy按位拷贝 int main() {int ar[10] = { 12, 23, 34, ...

  5. c语言memcpy与strcpy,C语言:strcpy()和memcpy()

    一.strcpy和memcpy都是标准C库函数,它们有下面的特点: 1.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知st ...

  6. memcpy和memmove的区别以及内存重叠问题

    memcpy和memmove的区别以及内存重叠问题 转自:https://www.codecomeon.com/posts/89/ 区别 memcpy() 和 memmove() 都是C语言中的库函数 ...

  7. strncpy函数详解看这一篇就够了-C语言(函数实现、使用用法举例、与strcpy的区别)

    首先要明确strncpy的功能是:拷贝src字符串的前n个字符至dest 目录 函数介绍 与strcpy的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型: char *strncpy(c ...

  8. memset,memcpy,strcpy 的区别

    一.函数原型 strcpy extern char *strcpy(char *dest,char *src); #include <string.h> 功能:把src所指由NULL结束的 ...

  9. strcpy、memcpy和memset的区别

    strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#include <string.h> 功能:把src所指由NULL结束的字 ...

最新文章

  1. SpringMVC怎么获取前台传来的数组
  2. caffe python接口_ubuntu配置caffe的python接口pycaffe
  3. 计算机系学生的简单立体宿舍装潢大赏
  4. mysql从零开始自增id_MySQL从零开始 7-表约束之主键,自增长,唯一键
  5. 静态库调用_静态链接和动态链接对比简析
  6. 【转】DICOM中几个判断图像方向的tag
  7. 关于获取多个屏幕分辨率以及进行一些设置
  8. [2013.8.16]小议innerText/HTML以及outerText/HTML
  9. 对SP光刻机表示谨慎
  10. 谷歌浏览器加载外部 DLL 文件 关于chrome上的网银安全控件开发技术(chrome 调用本地dll)
  11. 商品详情页html源代码,商品详情页.html
  12. Win8.1 ext-ms-win-ntuser-uicontext-ext-l1-1-0.dll等缺失
  13. Android开发眼镜店管理系统,智能眼镜店管理系统(基于BS架构互联网版)下载_智能眼镜店管理系统(基于BS架构互联网版)官方下载-太平洋下载中心...
  14. 拼多多批发是什么?常见的问题有哪些?
  15. 将excel转为图片
  16. 传智杯2021年第三届传智杯全国大学生IT技能大赛(决赛B组)python小白解题思路
  17. C语言经典例题-国际象棋棋盘
  18. 【12-06】A股主要指数的市盈率(PE)估值高度
  19. netcat工具安装
  20. linux kill virus

热门文章

  1. 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
  2. string转换成date类型_你竟然知道SpringMVC是如何完成类型转换和数据绑定的吗?...
  3. 1071svm函数 r语言_如何利用R语言中的rpart函数建立决策树模型
  4. linux怎么卸载yam,linux 基本命令 - osc_foipyam7的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. pop3 postfix 命令_Email基础知识: SMTP/POP3 命令简介
  6. opengl加载显示3D模型DXF类型文件
  7. JavaScript实现唯一路径问题的动态编程方法的算法(附完整源码)
  8. JavaScript实现求最大公约数 (GCD)的算法(附完整源码)
  9. wxWidgets:wxColourPickerEvent类用法
  10. boost::stacktrace模块实现终止处理程序的测试程序