---------------------------------------------
-- 时间:2018-12-15
-- 创建人:Ruo_Xiao
-- 邮箱:xclsoftware@163.com
---------------------------------------------

一、strcat_s

1、原型:

errno_t strcat_s(char *strDestination,size_t numberOfElements,const char *strSource );

2、功能:把strSource所指字符串添加到strDestination结尾处(覆盖strDestination结尾处的'\0')并添加'\0'。numberOfElements是strDestination的字符数组所占内存的空间大小。

二、注意事项

1、strSource字符数组的后面必须要有'\0'字符,否则该函数会一直拷贝strSource后面的字符,直至遇到'\0'。

2、numberOfElemets 是strDestination的buffer的大小。该buffer必须足够大,满足能够存入strDestination和strSource字符。

三、源码分析(linux-4.13.11 / lib / string.c)

char *strcat(char *dest, const char *src)
{char *tmp = dest;while (*dest)dest++;while ((*dest++ = *src++) != '\0');return tmp;
}

说明:

char *tmp = dest;

保存dest的地址,因为函数返回的是dest字符数组的首地址。

while (*dest)dest++;

沿着dest向高地址遍历,直至找到'\0'字符(ASCII码为0),这段代码执行完成之后,*dest = '\0'。

while ((*dest++ = *src++) != '\0');

src的字符数组中的元素依次赋值到dest后面的内存空间,直至*src= '\0',同时,dest='\0'。*和++的组合用法请看链接:https://blog.csdn.net/itworld123/article/details/79955932

(SAW:Game Over!)

使用strcat_s函数的注意事项相关推荐

  1. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  2. MIN()与MAX()函数 的注意事项

    MIN()与MAX()函数 的注意事项 定义: MIN()函数用于返回一个列范围内的最小非空值:MAX()函数用于返回最大值.这两个函数可以用于大多数的数据类型,返回的值根据对不同数据类型的排  序规 ...

  3. Inline函数使用注意事项

    Inline函数使用注意事项 1.在一个文件中定义的inline函数不能再另一个文件中使用 2.inline函数应简洁,只有少数几个语句. 3.在inline函数中不能有循环,if,switch语句. ...

  4. C语言 strcat_s 函数 - C语言零基础入门教程

    目录 一.strcat_s 函数简介 二.strcat_s 函数原理 三.strcat_s 函数实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语 ...

  5. 函数hook注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 函数hook,简单地说就是把目标函数替换我们的函数,用比较技术的语言描述就是: " (1) Target函数:要拦截 ...

  6. 箭头 运算符_论普通函数和箭头函数的区别以及箭头函数的注意事项和不适用场景...

    论普通函数和箭头函数的区别以及箭头函数的注意事项和不适用场景 箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱.就是这种我们日常开发中一直在使用的API,大 ...

  7. inline函数的注意事项有哪些?

    inline函数由inline关键字定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数. inline函数的注意事项有哪些? 在使用内联函数时,要注意以下几个事项和建议: 1. ...

  8. c语言strcat()/strcat_s()函数详解

    前言 先看下strcat()/strcat_s()函数调用报错: 放大一点 严重性    代码    说明    项目    文件    行    禁止显示状态 错误    C4996    'str ...

  9. Python蹒跚学步1:常用函数 和 注意事项

    Python蹒跚学步1:常用函数 和 注意事项 常用函数: 获取Python当前的工作目录 >>> import os >>> os.getcwd() 'D:\\W ...

最新文章

  1. php实现项目的日志记录功能,tp5框架使用composer实现日志记录功能示例
  2. 查看LINUX进程内存占用情况
  3. 大四Java复习笔记之Java基础
  4. Excel电子表格输入技巧大比拼
  5. 算法(二叉树-矩阵-堆排序)
  6. ftp 访问mysql6,RedHat6.5开启ftp访问已有目录方法
  7. 利用Outlook应用程序接口执行Shellcode
  8. 地图标识符号大全_资源小结:分省地图查询(9.1版)
  9. T70次列车(乌鲁木齐 到 北京)的列车时刻表
  10. 如何把公众号的内容同步到头条自媒体号上?
  11. rosbag录制话题、播放话题多种模式
  12. python统计水仙花数个数_Python一句代码实现找出所有水仙花数的方法
  13. 求求你!不要在网上乱拷贝代码了
  14. 在阿里(05)2022.04.19 周年啦
  15. 用计算机程序计算兴利库容,《水利计算》课程教学大纲
  16. Windows 11 安装的那些事
  17. 杜克大学计算机专业本科入学条件,杜克大学录取条件
  18. nfs 的 mount 命令
  19. 关于or not and的优先级
  20. Python爬虫根据公司名称爬取信息并保存为json格式的txt文件qcc

热门文章

  1. 怎么样Windows7在配置ASPserverIIS
  2. C++11 中STL库中新增内容
  3. 结束SQL阻塞的进程
  4. java判断点与线与面的关系_VC++开发GIS系统(280)判断点与面的拓扑关系
  5. win 10下方搜索栏没见了解决方法
  6. JVM调优:运行参数,内存模型,mat、jps、jstat、jmap、jstack、jvisualvm工具的使用
  7. 解决HBase RegionServer进程还在,但是显示已经dead了
  8. k8s ConfigMap使用示例:以volume或变量形式挂载到pod中
  9. ubantu18.04使用docker部署mysql5.7及在宿主机登录容器内mysql
  10. Python Django 请求重定向的三种方式