【C/C++】strncpy函数的模拟实现

devtools/2024/11/8 10:54:51/

零.导言

       之前我们学习了strncpy函数,不妨我们现在尝试模拟实现strncpy函数的功能。


一.实现strncpy函数的要点

  • strncpy函数是一种字符串函数,可以按字节拷贝字符类型的数组,因此我们自定义的模拟函数需要两个char类型的指针参数;
  • 其次我们还需要一个整形类型(或者size_t类型)的num,以确认要拷贝的字节数。

二.strncpy函数的模拟实现

        其实很简单,只需满足以上几个条件,代码如下:

void char_ncpy(const char* dest, const char* sourse, size_t num)
{while (num){*(char*)dest = *(char*)sourse;dest = dest + 1;sourse = sourse  + 1;num--;}
}

        这样,模拟的函数就可以起到和原函数相近的效果,验证:


三.strncpy函数模拟实现的意义

         加深了我们对此函数的理解,深入的学习了strncpy函数的本质,对日后新知识的学习与理解有帮助。


四.相关链接

        【C/C++】字符/字符串函数(1)——由string.h提供-CSDN博客



http://www.ppmy.cn/devtools/132286.html

相关文章

【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用 imadjust 函数进行伽马变换

引言 伽马校正(Gamma Correction)是一种用于图像处理的技术,主要用于调整图像的亮度或对比度。其基本原理是对图像的每一个像素应用一个非线性变换,以更好地适应人眼的视觉感知。在数字图像处理中,伽马校正通常用于调…

nginx代理出现的请求头中获取不到acc_token问题

1.问题 程序开发完成之后,发现页面登录之后,获取不到用户信息。发现时没有获取到token信息。本地程序开发完成,后端服务成功署到服务器。通过云服务器开放对应的端口,使用本地的前端服务,直接连接服务器后端服务&…

Spring Boot 与 Vue 共筑航空机票预定卓越平台

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

微服务day02

教学文档: 黑马教学文档 Docker Docker的安装 镜像和容器 命令解读 常见命令 案例 查看DockerHub,拉取Nginx镜像,创建并运行容器 搜索Nginx镜像:在 www.hub.docker.com 网站进行查询 拉取镜像: docker pull ngin…

使用swagger3.0踩过的坑

1.出现这个错误: 原因是: 改成: 就可以了 2.参数框框里面输入不了值 点击try it out ,就可以输入了

06 网络编程基础

目录 1.通信三要素 1. IP地址(Internet Protocol Address) 2. 端口号(Port Number) 3. 协议(Protocol) 2.TCP与UDP协议 三次握手(Three-Way Handshake) 四次挥手(…

Linux学习笔记之时间日期和查找和解压缩指令

时间日期类 date指令-显示当前日期 date (显示当前时间) date %Y (显示当前年份) date %m (显示当前月份) date %d (显示当前那一天) date “%Y-%m-%d %H:%M:%S” (显示…

植物神经功能紊乱?这些维生素或许能帮到你!

植物神经功能紊乱,这个听起来有些陌生的名词,实际上却是一种常见的内脏功能失调综合征。它可能与心理、遗传、疾病等多种因素有关,表现为多个系统的症状,如睡眠障碍、心悸、头痛、胸闷、多汗等,严重影响了患者的生活质…