strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, char *src, int n),把src所指字符串的前n个字节复制到dest所指的数组中,并返回指向dest的指针。

strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。
strncpy能够选择一段字符输出,strcpy则不能。例如:
char name[]={"Chinanet"},dest[20]={};
strncpy(dest,name,9);
printf("%s\n",dest);
strncpy可实现strcpy的字符串复制:
char name[]={"Chinanet"},dest[20]={};
strncpy(dest,name,sizeof(name));
printf("%s\n",dest);

注意在以上的代码中 dest[20]={};后面的{}不能缺少,否则会出现错误,而strcpy时可以不加{}原因是strcpy会复制src的'\0'

strncpy与strcpy的区别与注意事项相关推荐

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

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

  2. Linux C中strcpy , strncpy , strlcpy 的区别

    strcpy ,strncpy ,strlcpy的用法 好多人已经知道利用strncpy替代strcpy来防止缓冲区越界. 但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式. 1. s ...

  3. strcpy 和strncpy 的代码和区别

    strcpy 是将strSrc中的数据拷贝到以strDest开头的地址里面. 内存不能重叠. char * strcpy(char *strDest,char * strSrc){ assert(st ...

  4. memcpy和strcpy的区别 ?

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

  5. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项

    Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...

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

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

  7. 英文破折号、连接号、连字符、负号的区别,注意事项和输入方法

    英文破折号.连接号.连字符.负号的区别,注意事项和输入方法 En dash MS Word中输入2013,在按Alt+X Em dash MS Word中输入2014,在按Alt+X

  8. 动态代理jdk和cglib区别、注意事项(private,static,final)、spring aop原理

    文章目录 一.代理简聊 二.静态代理 三.动态代理 1.jdk动态代理 2.cglib动态代理 四.动态代理总结.注意事项 1.jdk动态代理与cglib的区别. 2.注意事项及分析. 五.aop原理 ...

  9. strcpy、strncpy与memcpy的区别与使用方法

    2018-3-19 一.函数说明 1.memcpy函数 void *memcpy(void *s1, const void *s2, size_t n); 说明: 函数memcpy从s2指向的对象中复 ...

最新文章

  1. TrayIcon 类 添加系统托盘不显示托盘图标
  2. BeanDefinitionRegistryPostProcessor​ 的处理源码流程
  3. nginx源码学习资源
  4. 8-Mybatis 的动态 SQL 语句
  5. linux/unix 基本概念的认识(sha-bang 、PPA)
  6. Remove_if 删除vector数据
  7. shell脚本只运行一个实例
  8. C中使用汇编交换两个值
  9. gpt-2 文章自动生成_有助于您理解GPT-3的文章
  10. 开放api接口平台:appid、appkey、appsecret
  11. 几个例子理解博弈论与纳什均衡
  12. Visual Studio Code 配置C/C++编译环境流程及问题解决(Win10环境)
  13. Predicting microRNA–disease associations from lncRNA–microRNA interactions via Multiview Multitask
  14. 医疗行业虚拟化终端管理平台解决方案
  15. exchange java ews_Exchange服务器之使用EWS读取Exchange邮件
  16. 数据库-差集交集并集
  17. 试玩系列 | 真香!大疆TT无人机编程初体验,教你对它为所欲为!
  18. make错误 redis6_redis安装make失败,make[1]: *** [adlist.o] Error 127....
  19. 【C语言进阶】很诡异的编译报错expected declaration or statement at end of input
  20. tensorflow学习(一)基础数学

热门文章

  1. 在eclipse中创建第一个java应用程序,并在控制台输出“hello world”。
  2. selenium浏览器驱动下载地址整理
  3. bzoj4245: [ONTAK2015]OR-XOR
  4. 【K8S学习笔记】Part1:使用端口转发访问集群内的应用
  5. 链表打印从尾到头打印链表
  6. linux0.11学习笔记-技术铺垫-简单AB任务切换程序(1)-实现一个简单的bootloader
  7. javascript --- XHR(XMLHttpRequet)对象
  8. PHP数组的排序函数
  9. Laravel 中的环境与配置
  10. 《HTML5与CSS3实战指南》——2.2 基本的HTML5模板