Day28~实现strlen、strcpy、strncpy、strcat、strncat

实现strlen、strcpy、strncpy、strcat、strncat

#include <stdio.h> size_t my_strlen(const char *src) { size_t len = 0; while (*src != '\0') { len++; src++; } return len; } char *my_strcpy(char *dest, const char *src) { if (dest == NULL || src == NULL) // 判断输入的字符是否为空 { return NULL; // 如果为空,就返回空 } char *temp = dest; // 将dest的地址赋值给一个临时变量 while (*src != '\0') // 遍历要拷贝的字符 { *temp = *src; // 将src的值赋给temp src++; // src地址后移 temp++; // temp地址后移 } *temp = '\0'; // 最后一位为\0 return dest; // 返回dest } char *my_strncpy(char *dest, const char *src, size_t n) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; size_t i; for (i = 0; (i < n) && (*src != '\0'); i++) { *temp = *src; src++; temp++; } for (; i < n; i++) { *temp = '\0'; } return dest; } char *my_strcat(char *dest, const char *src) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; while (*temp != '\0') { temp++; } while (*src != '\0') { *temp = *src; temp++; src++; } *temp = '\0'; return dest; } char *my_strncat(char *dest, const char *src, size_t n) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; while (*temp != '\0') { temp++; } size_t i; for (i = 0; (i < n) && (*src != '\0'); i++) { *temp = *src; src++; temp++; } for (; i < n; i++) { *temp = '\0'; } return dest; } int main() { char dest[100] = "Hello World"; char src[100] = "Hello World"; // char *result1 = my_strcpy(dest, src); // char *result2 = my_strncpy(dest, src, 3); // size_t result = my_strlen(src); // char *result3 = my_strcat(dest, src); char *result4 = my_strncat(dest, src, 3); // printf("%s\n", result1); // printf("%s\n", result2); // printf("%ld\n", result); // printf("%s\n", result3); printf("%s\n", result4); return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1005278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习打卡第J2周:ResNet50V2算法实战与解析

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 import tensorflow as tf import tensorflow.keras.layers as layers from tensorflow.keras.models import Modeldef block2(x, filters, kernel_size3, stri…

实用方法:轻松实现NCM文件格式转换的完整解析

实用方法&#xff1a;轻松实现NCM文件格式转换的完整解析 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter NCMconverter是一款高效便捷的开源工具&#xff0c;专门用于将网易云音…

团队协作神器!本地部署 ONLYOFFICE + cpolar,多人编辑文档超方便

文章目录前言1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址前言 ONLYOFFICE 是一款在线办公套件&#xff0c;支持文档、表格、演示文稿的在线编辑&#xff0c;兼容 Office 格式&#xff0c;还能实时多人协作&#xff0c;特别适合中小…

终极指南:快速掌握Scarab空洞骑士模组管理神器

终极指南&#xff1a;快速掌握Scarab空洞骑士模组管理神器 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 想要轻松管理几十个空洞骑士模组却不知从何下手&#xff1f;Scarab作…

端侧多模态新纪元:MiniCPM-V 2.6重新定义移动端AI交互体验

在人工智能技术迅猛发展的今天&#xff0c;多模态理解能力已成为衡量AI模型智能化水平的核心指标。近日&#xff0c;由OpenBMB团队推出的MiniCPM-V 2.6模型在该领域取得显著进展&#xff0c;尤其在资源受限的端侧设备上展现出令人瞩目的性能表现。这款融合视觉与语言理解能力的…

学习c语言第一天的学习笔记

在学习的时候&#xff0c;我们使用vscode软件进行c代码的编译&#xff0c;并且有时候会用到Linux wsl 子系统&#xff0c;进行终端里面的编译&#xff0c;使用的基本命令像 arm-linux-gcc 文件名 -o 目标文件名C语言的数据类型&#xff1a;int类型 &#xff08;整型&#xff0…

激活函数应该具有哪些特征

激活函数应该具有哪些特征1.非线性2.可微性3.计算效率高4.缓解梯度消失与爆炸5.合理的输出范围6.稀疏激活能力7.主流激活函数对比&#xff08;扩展版&#xff09;#人工智能#具身智能#VLA#大模型#AI#LLM#Transformer 架构#AI技术前沿#Agent大模型#工信部证书#人工智能证书#职业证…

C++课后习题训练记录Day49

1.练习项目&#xff1a; 输入描述 第一行是一个整数 M&#xff08;1≤M≤1000&#xff09;&#xff0c;表示一共有 M 次操作。 第二行到第 M1 行输入操作&#xff0c;格式如下&#xff1a; IN name VOUT VIN name NOUT N 输出描述 输出 M 次操作后 VIP 窗口队列和普通窗口…

【智能制造典型场景参考指引(2025 年版)解读】 -产品研发环节

智能制造作为制造业转型升级的核心驱动力&#xff0c;通过深度融合新一代信息技术与先进制造技术&#xff0c;推动生产模式向数字化、网络化、智能化方向演进。智能制造典型场景参考指引&#xff08;2025 年版&#xff09;旨在为制造业企业提供可落地的典型场景参考&#xff0c…

利用用户的通话记录、通讯录以及短信内容可以极大提高销售效率和精准度

利用用户的通话记录、通讯录以及短信内容可以极大提高销售效率和精准度在当今数字化时代&#xff0c;数据已成为企业提升竞争力的核心资源。通过深度挖掘和分析用户的通话记录、通讯录及短信内容&#xff0c;企业能够更精准地洞察客户需求&#xff0c;优化销售流程&#xff0c;…

技术工具类文章仿写专家Prompt指南

技术工具类文章仿写专家Prompt指南 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 一、核心任务定义 你是一名专业的文章仿…

【YOLO11-MM 多模态目标检测】动态门控MCFGatedFusion特征融合【自研模块】、抛弃Concat、实现特征动态补偿

摘要 本文提出了一种基于动态门控特征融合模块(MCFGatedFusion)的YOLO11-MM多模态目标检测框架改进方案。该模块通过可学习的门控机制实现红外与可见光特征的自适应融合,采用零初始化策略确保训练稳定性,支持add和concat两种融合模式。实验表明,该方法在FLIR、M3FD等数据…

LeetCode 189. 旋转数组 | 三步反转最优解全拆解

「旋转数组」核心考察数组操作技巧与空间复杂度优化思路。这道题看似简单&#xff0c;却能延伸出多种解题方法&#xff0c;从暴力模拟到极致的空间优化&#xff0c;层层递进的思路能帮我们理解算法设计的核心 —— 用最少的资源解决问题。实际开发中&#xff0c;类似 循环数组操…

Windows右键菜单优化全攻略:告别卡顿的3大诊断与4步修复方案

Windows右键菜单优化全攻略&#xff1a;告别卡顿的3大诊断与4步修复方案 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 当点击文件后那个小圆圈不停旋转&#x…

【YOLO11-MM 多模态目标检测】MSAA多尺度特征融合、轻量而且高效、抛弃Concat普通融合

摘要 本文提出了一种基于YOLO11-MM框架的多模态目标检测改进方法&#xff0c;通过引入多尺度注意力聚合模块(MSAA)实现红外与可见光特征的高效融合。MSAA模块采用多尺度卷积和空间/通道双注意力机制&#xff0c;有效提升了模型在复杂场景下的检测性能。实验在FLIR、M3FD和LLVI…

百度网盘高速下载工具使用手册:告别蜗牛速度的秘诀

还在为百度网盘那令人抓狂的下载速度而烦恼吗&#xff1f;想象一下&#xff0c;原本需要几个小时下载的文件&#xff0c;现在只需几分钟就能完成&#xff01;今天我要分享的这款神器&#xff0c;正是为解决这一痛点而生——百度网盘高速下载工具&#xff0c;让你的下载体验瞬间…

LeetCode 49. 字母异位词分组 | 从排序到计数的哈希表优化之路

在 LeetCode 的字符串类题目中&#xff0c;「字母异位词分组」是一道经典的中等难度题&#xff0c;它不仅考察字符串处理的基础能力&#xff0c;更是对哈希表键值设计思路的深度检验。这道题的核心是找到字母异位词的 共性特征&#xff0c;并通过这个特征实现分组。今天我们就从…

终极英雄联盟智能助手:三步实现游戏自动化完全指南

终极英雄联盟智能助手&#xff1a;三步实现游戏自动化完全指南 【免费下载链接】LeagueAkari ✨兴趣使然的&#xff0c;功能全面的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/LeagueAkari 还在为繁琐的…

亲测!高性价比AI数字员工租赁公司分享

亲测&#xff01;高性价比AI数字员工租赁公司分享行业痛点分析当前AI数字员工领域面临着诸多技术挑战。一方面&#xff0c;技术的通用性不足&#xff0c;不同行业的业务流程和需求差异巨大&#xff0c;现有的AI数字员工难以实现全行业的深度适配。测试显示&#xff0c;在一些复…

downkyi视频下载:告别卡顿与画质损失的终极解决方案

downkyi视频下载&#xff1a;告别卡顿与画质损失的终极解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xf…