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

【C语言】strcmp 的使⽤和模拟实现

前言

这篇文章将要带我们去实现模拟一个strcmp函数
首先我们要知道strcmp函数的定义

strcmp()定义和用法

我们先看一下strcmpcplusplus网站中的定义
链接: link
在这里插入图片描述

int strcmp ( const char * str1, const char * str2 );
  • 比较两个字符串
  • 将 C 字符串 str1 与 C 字符串 str2 进行比较。
  • 此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续执行以下对,直到字符不同或达到终止null字符。
  • 返回一个整数值,该值指示字符串之间的关系:
返回值表明
<0第一个不匹配的字符在 PTR1 中的值低于 PTR2 中的值
0两个字符串的内容相等
>0第一个不匹配的字符在 PTR1 中的值大于 PTR2 中的值

strcmp模拟实现

那么如何判断两个字符串?
比较两个字符串中对应位置上字符ASCII码值的⼤⼩。

实现代码

int my_strcmp (const char * str1, const char * str2)
{int ret = 0 ;assert(src != NULL);assert(dest != NULL);while(*str1 == *str2){if(*str1 == '\0')return 0;str1++;str2++;}return *str1-*str2;
}

※ 如果文章对你有帮助的话,可以点赞收藏!!谢谢支持

相关文章:

  • Spring高级面试题-2024
  • 政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(五)—— Dropout和批归一化
  • Ipython与Jupyter之间的关系
  • 红外遥控器的使用和详细解释
  • C语言牛客网BC-37 牛牛的圆(求面积)
  • 信号处理--基于FBCSP滤波方法的运动想象分类
  • 4.Python数据分析—数据分析入门知识图谱索引(知识体系下篇)
  • vue+Echarts实现多设备状态甘特图
  • canvas画带透明度的直线和涂鸦
  • MySQL学习笔记------DCL
  • C++实现FFmpeg音视频实时拉流并播放
  • 如何在服务器上传/下载文件
  • 【Postman如何进行接口测试简单详细操作实例】
  • Java:反射 reflection ( 概念+相关类+使用方法)
  • main.py(二)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 2018一半小结一波
  • CAP理论的例子讲解
  • ES6简单总结(搭配简单的讲解和小案例)
  • golang 发送GET和POST示例
  • Java 多线程编程之:notify 和 wait 用法
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mockjs让前端开发独立于后端
  • 第2章 网络文档
  • 记一次和乔布斯合作最难忘的经历
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 小试R空间处理新库sf
  • 延迟脚本的方式
  • 优化 Vue 项目编译文件大小
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #android不同版本废弃api,新api。
  • #include<初见C语言之指针(5)>
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C语言)球球大作战
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (三)Honghu Cloud云架构一定时调度平台
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十) 初识 Docker file
  • (算法设计与分析)第一章算法概述-习题
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)fock函数详解
  • (转)mysql使用Navicat 导出和导入数据库
  • ******之网络***——物理***
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET 设计模式—简单工厂(Simple Factory Pattern)