当前位置: 首页 > 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.rkmt.cn/news/1437630.html

相关文章:

  • 别再死记硬背公式了!用Python从零手搓一个BP神经网络(附完整代码)
  • ICM20948九轴DMP姿态解算工程套件:含驱动配置、串口调试与3D可视化工具
  • PACS 影像云解决方案深度评测与选型指南
  • 告别重装烦恼:用CGI-Plus v5.0.0.6单文件版,5分钟搞定Windows系统备份与还原
  • 龙城秘境手游官网下载:2026 年 6 月最新官方下载渠道
  • Linux Mint系统恢复翻车实录:手把手教你正确配置Timeshift快照(附断电重启大法)
  • 新手学习全过程实录06——零基础搭建鸿蒙天气应用
  • 校园外卖系统毕业设计全套:SpringBoot+Vue可运行源码+数据库+论文+答辩PPT+实操视频
  • 厨房质检员——从阿明的“祖传配方“到标准化质检,看测试金字塔的落地
  • 视频号解析接口上线!无需登录,复制链接直接解析
  • 2026可靠科尔摩根驱动器选购推荐:伦茨制动器、伦茨变频器、伦茨控制器、伦茨电机、伦茨直流调速器、伦茨维修、伦茨驱动器选择指南 - 优质品牌商家
  • 无人机非定常气流控制与VPM模型实时实现
  • 再薅嘉立创羊毛
  • 联想电脑丢了F11一键还原?手把手教你用官方工具找回原厂系统(含Office)
  • 别再手动跑实验了!用Python脚本一键搞定YOLOv8消融实验(附完整代码)
  • 2026建筑用环氧厚浆漆优质供应商推荐:醇酸调和漆、醇酸防锈漆、醇酸面漆、金淇顿涂料、钢结构快干防锈漆、丙烯酸脂肪族聚氨酯面漆选择指南 - 优质品牌商家
  • 5、What makes an AI company:造就一家人工智能公司需要什么
  • AI视频生成技术演进路线图:从Stable Video到实时神经渲染,2024-2030关键拐点全解析
  • 潍坊滨海车衣怎么选才实用?
  • 保姆级教程:用Python+SUMO+TraCI搭建你的第一个交通AI仿真环境(附完整代码)
  • 用Python玩转ABIDE数据集:从零开始下载、预处理到可视化(附完整代码)
  • 告别手动数框!快速检查YOLO格式数据集标签分布的保姆级教程
  • 量子雷达与ISAC融合技术解析
  • C# 泛型学习总结:从一头雾水到豁然开朗
  • Qt UDP 接收遇到 QMessageBox 弹窗为什么一定会卡住界面更新
  • 在CentOS 7上搞定Silvaco TCAD 2012安装:一个踩过所有坑的保姆级记录
  • 私人音乐播放服务
  • 云南活动执行哪家好?策划/搭建/设备/物料一体化服务
  • Spring Boot 、Spring Cloud 微服务架构认证授权方案
  • 2026年优质镍锻件TOP5推荐:N4纯镍板、N6纯镍板、N6镍卷带、N6镍管、纯镍棒、纯镍管、钛镍合金材料、钛镍材料选择指南 - 优质品牌商家