当前位置: 首页 > news >正文

使用C语言重写“strcat”和“strcmp”两个方法

strcat(用来将第二个字符串连接到第一个字符串)

voidmystrcat(char*str,constchar*sub){//第一个是可以改变的,第二个参数是不可以改变的intlen1=strlen(str)+strlen(sub);//for循环的次数,因为在最后需要将sub数组当中的'\0'也写进去,所以不需要减一intlen2=strlen(str);str+=strlen(str);for(inti=strlen(str);i<=len1;i++){*str++=*sub++;}}

strcat重写实现的思路:
第一步:将两个字符串得首地址传递进来,并且将第二个字符串连接到第一个字符串后面(所以把第二个字符串的首地址定义为“ const char * ”类型:目的是为了让第二个字符串的值不被修改,起到得是一个“保护作用”);
第二步:定义两个变量,分别存储的是str字符串在最后遍历时候的结束位置,以及str字符串遍历连接sub字符串的第一个位置;
第三步:开始逐个遍历,将sub当前位置的元素连接到str当前的位置。
(需要注意的是:仔细统计当前元素的个数)

strcmp(两个字符串数组基于ASCII 值进行逐个的比较)

intmystrcmp(constchar*str,constchar*sub){while(*str!='\0'||*sub!='\0'){if(*str>*sub){return1;}if(*str<*sub){return-1;}

strcmp重写实现的思路:
第一步:函数的返回值是int类型的,因为要堆大小进行一个判断(所以取的值是0:字符串相等 1:str当前元素大于sub当前元素 -1:sub当前元素大于str当前元素);
第二步:设置while循环,并且对作用域里面的函数进行判断(我使用的是两个if语句,大家使用的时候可以用if…else if语句);
第三步:当循环结束后还没有返回,就说明两个字符串是相等的,所以直接返回“0”。

注意事项:
1.再写这段代码的时候,我们应该记住的是(如果两个值进行相减的话,一定需要记住的是‘\0’的ASCLL码值是数字0,0的ASCLL码值是48)
2.while (*str++ != ‘\0’ && *sub++ != ‘\0’)这个语句当中的错误是,在while里面进行判断结束后会进行自增操作,跳到第二个值,不会对第一个值进行判断,所以需要记住。

我在while循环当中为什么使用“||”或运算符,是因为当两个数组不等长时,我可以让它一直循环到最末尾的位置(我知道大家会担心越界的问题),所以我在函数当中设立了终止条件两个元素进行ASCLL码值的大小判断,不会造成越界操作。

最后呢,我也是刚上手的小白,如果大家在里面发现错误的话或者是阅读时候有什么问题,也是希望多多提出你们宝贵的意见意见,我们一起交流,一起进步嘿嘿嘿

http://www.jsqmd.com/news/926299/

相关文章:

  • 别再死记硬背公式了!用Python从零手搓一个BP神经网络(附完整代码)
  • RomM完全指南:构建现代化游戏库管理的终极解决方案
  • 热血传说手游官网下载:2026 年 6 月最新官方下载渠道
  • 2026年越南公司注册新规解读及合规实操技术分享:海外ODI备案代办/马达加斯加公司注册/上海境外投资备案ODI/选择指南 - 优质品牌商家
  • PACS 影像云解决方案深度评测与选型指南
  • Spring AI企业级RAG优化|Redis会话记忆持久化+混合检索权重调优(大幅提升问答准确率)
  • ICM20948九轴DMP姿态解算工程套件:含驱动配置、串口调试与3D可视化工具
  • Win11系统下FME 2020安装激活保姆级教程(附ArcGIS兼容性避坑指南)
  • css常用知识
  • Win10黑屏只剩鼠标?别急着重装!用这条sfc命令5分钟救活你的桌面
  • 龙城秘境手游官网下载:2026 年 6 月最新官方下载渠道
  • Ubuntu 22.04 LTS下,三种NVIDIA驱动安装方法怎么选?保姆级对比与避坑指南
  • Linux Mint系统恢复翻车实录:手把手教你正确配置Timeshift快照(附断电重启大法)
  • 告别重装烦恼:用CGI-Plus v5.0.0.6单文件版,5分钟搞定Windows系统备份与还原
  • Trae IDE完美编译LaTeX:一键生成PDF全指南--建议使用AI 直接生成pdf
  • Aura:我用Rust重写的LLM网关
  • 代驾司机加盟入职流程是怎样 - mypinpai
  • Bootstrap方法避坑指南:从原理到R实战,告诉你什么时候该用,什么时候会翻车
  • 新手学习全过程实录06——零基础搭建鸿蒙天气应用
  • 开封高大空间专用冷热机组性价比高的厂家
  • 校园外卖系统毕业设计全套:SpringBoot+Vue可运行源码+数据库+论文+答辩PPT+实操视频
  • 2026年苏州家庭外墙漏水维修专业服务企业特征与主流服务主体梳理 专业防水公司排名推荐(2026年6月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 支付通道长久稳定,只靠这两大核心
  • LyciaMusic铃音播放器
  • 厨房质检员——从阿明的“祖传配方“到标准化质检,看测试金字塔的落地
  • 视频号解析接口上线!无需登录,复制链接直接解析
  • 从零到精:手把手教你用Windows Server 2022搭建企业级AD域环境(附DNS配置与客户端入域全流程)
  • 别再只用K折了!用Python的sklearn.LeaveOneOut做小数据集验证,保姆级代码示例
  • 【限时解密】Gemini内容日历规划SOP模板(含自动触发逻辑+多模态发布时序表)
  • 2026年苏糖酸镁TOP榜单:按需选择更靠谱