53.【C语言】 字符函数和字符串函数(strcmp函数)

7.strcmp函数

*简单使用

cplusplus的介绍 点我跳转

strcmp:string compare 字符串比较

具体讲解见此文 点我跳转

*例题

求下列代码的执行结果

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{char arr1[20] = { "\0Hello World!" };char arr2[20] = { "\0Hello" };int ret = strcmp(arr1,arr2);printf("%d", ret);return 0;
}

答案速查:

分析:

strcmp函数的比较原理是一个一个字符比较,由于一开始两个字符串都是\0,因此strcmp直接返回0,后面的内容不再比较

*模拟实现

设计一个函数sim_strcmp

string1简写为str1,string2简写为str2

和strcmp函数一样,两个类型为char*的参数和一个类型为size_t的参数

返回类型为int

方案1:只使用两个类型为char*的参数

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int sim_strcmp(const char* str1, const char* str2)//不让str1和str2的内容改变
{while (*str1 == *str2){if (*str1 == '\0'){return 0;}str1++;str2++;}if (*str1 > *str2)return 1;elsereturn -1;}
int main()
{char arr1[20] = { "Hello" };char arr2[20] = {"Helabc"};int ret = sim_strcmp(arr1,arr2);printf("%d", ret);return 0;
}

注意:*str1 == *str2有两种情况!

1.没有比完,中途相等

2.比完了(\0为标志),相等(特殊情况优先考虑)

方案2:使用三个参数

#define   _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int sim_strcmp(const char* str1, const char* str2,size_t num)//不让str1和str2的内容改变
{//让i和num保持同类型for (size_t i = 0; i <= num; i++)//最大循环num次{if (*str1 == '\0'){return 0;break;}if (*str1 > *str2){return 1;break;}if (*str1 < *str2){return -1;break;}str1++;str2++;}
}int main()
{char arr1[20] =  { "Hello" };char arr2[20] = { "Helabc" };size_t num = 0;size_t len1 = strlen(arr1);size_t len2 = strlen(arr2);if (len1 > len2){num = len1;}else{num = len2;}int ret = sim_strcmp(arr1, arr2, num);printf("%d", ret);return 0;
}

 

推荐阅读:

51.【C语言】字符函数和字符串函数(strcpy函数)

52.【C语言】 字符函数和字符串函数(strcat函数)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目: 基于SpringBoot+mybatis+maven新闻推荐系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven新闻推荐系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…

时间安全精细化管理平台存在未授权访问漏洞

漏洞描述 登录--时间&amp;安全精细化管理平台存在未授权访问漏洞导致与员工信息泄露 FOFA&#xff1a; body"登录--时间&amp;安全精细化管理平台" POC IP/acc/_checkinoutlog_/

Amoco:一款针对二进制源码的安全分析工具

关于Amoco Amoco是一款功能强大的二进制源码静态分析工具&#xff0c;该工具基于Python 3.8开发&#xff0c;可以帮助广大研究人员轻松对二进制程序执行静态符号分析。 工具特性 1、一个通用的指令解码框架&#xff0c;旨在减少实现对新架构的支持所需的时间。例如&#xff0c…

Go第三方框架--gin框架(三)

5. net/http框架源码-- 多路复用的实现 这块核心功能对应 1.3 的圆圈2&#xff0c;所属代码如下图&#xff1a; run代码涉及的操作不是gin框架的核心&#xff0c;还记的我说过gin是在net/http的基础上操作的吗&#xff0c;我们来看下gin和net/http包的关联关系。 gin: 主要建…

批发供应系统案例分析

在快速变化的商业环境中&#xff0c;创新成为推动批发供应行业不断前行的关键动力。以下将通过几个案例分析&#xff0c;探讨创新批发供应系统如何引领行业变革&#xff0c;提升效率&#xff0c;优化服务&#xff0c;并创造新的市场机遇。 一、智能化库存预测与补货系统 案例概…

人工智能在鼻咽癌中的应用综述|文献精析·24-09-13

小罗碎碎念 这篇文章系统回顾了人工智能在鼻咽癌管理中的应用&#xff0c;发现AI在提高诊断、预后评估和放疗计划的自动化方面具有积极影响。 作者角色作者姓名单位&#xff08;中文&#xff09;第一作者Wai Tong Ng香港大学深圳医院临床肿瘤中心&#xff0c;中国&#xff1b;香…

不可思议!这7个反共识设计原则,正悄然改变AI应用的未来格局!

引言 在AI技术日益成熟的今天&#xff0c;如何设计出既符合用户需求又具备高度智能化的原生应用&#xff0c;成为摆在开发者面前的重要课题。然而&#xff0c;传统的应用设计思维往往限制了AI潜力的充分发挥。本文提出的七个反共识观点&#xff0c;旨在挑战传统观念&#xff0…

老程序员的数字游戏开发笔记(一) —— 世界从Godot开始

目录 开篇废话 GDScript 是什么 创建 GDScript 背后的动机是什么 Godot 会支持【此处插入 FMOD、GameWorks 等闭源 SDK 的名字】吗&#xff1f; 是否能用 Godot 创建非游戏应用&#xff1f; Godot 使用的用户界面工具包是什么&#xff1f; 为什么 Godot 使用 SCons 构建…

抖音视频下载

对于特别喜欢的视频有时需要珍藏&#xff0c;下文方法可能会帮到你&#xff0c;但要注意尊重版权和遵守相关声明。 Edge浏览器打开抖音短视频&#xff0c;按F12&#xff0c;选择 网络&#xff1b;筛选条件?a&#xff1b;双击搜索结果打开视频&#xff1b;选择想要的视频&…

镜像问题(k8s部署考试系统)

如果使用containerd拉取不到镜像的话&#xff0c;就使用docker 1.修改decker的镜像源 [rootk8s-master ~]# vim /etc/docker/daemon.json { "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", …

SSM 传统工艺品销售网站---附源码74714

摘 要 近年来&#xff0c;信息网络迅猛推进&#xff0c;其具有灵活方便、传递消息速度快等优点&#xff0c;这一新兴媒体日渐兴盛&#xff0c;已经成为人们日常生活获取信息一个重要手段。从08开始&#xff0c;电商行业如春风吹过后的小草&#xff0c;呈现出一片蓬勃地发展态势…

人力资源管理系统员工组织与微软AD域服务系统集成案例

一、项目背景 上海某电路半导体有限公司主要产品应用于图像传感器、 图像信号处理芯片、 低功耗芯片、 射频芯片等。 公司内部HR人力资源管理系统统一进行人员批量预入职和同步等流程&#xff0c;由SAP PO平台进行中间管理&#xff0c;在微软AD域系统上创建人员&#xff0c…

若依plus-cloud nacos yml 动态获取 配置内容

这是剑走偏锋的写法。 直接上代码 在nacos中配置一个ruoyi-cms.yml 内容中有cms:filepath:******* springcloud配置 package org.dromara.cms.entity;import lombok.RequiredArgsConstructor; import org.springframework.core.env.Environment; import org.springframewo…

优化IDEA卡顿,提示慢的问题,亲测有效!

1、优化JVM的参数 以下文件在idea安装目录的idea64.exe.vmoptions文件中。 一般来说我们只需要调整-Xms、-Xmx、-XX:ReservedCodeCacheSize三个即可&#xff0c;根据电脑的实际内存去调&#xff0c;我的电脑是48G内存&#xff0c;调到了 -Xms4096m (堆初始内存大小) -Xmx8192m…

基于图像的端到端方案实现小车在模拟城市场景中的自主导航

基于图像的端到端方案实现小车在模拟城市场景中的自主导航 FSD&#xff08;Full Self-Driving&#xff09;是特斯拉公司推出的一种自动驾驶技术&#xff0c;旨在实现完全自主的驾驶体验。FSD系统依靠大量的数据和高级的机器学习算法&#xff0c;结合车载传感器&#xff08;如摄…

共模干扰的形成和滤除

1、共模就是共同对地的干扰&#xff1a; 如图&#xff0c;我们可以看到共模的原理图。UPQ就是共模电压&#xff0c;ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同&#xff0c;方向相同。 2、共模信号和差模信号的区别&#xff1a; 通常电源线有三根线&#xff1a;火线L、…

红帽RHCA认证什么级别?红帽认证等级细分攻略

Linux 系统作为开源软件的杰出典范&#xff0c;于服务器、云计算、大数据等诸多领域占据着至关重要的地位。对于矢志在 Linux 领域精研深耕的技术人才而言&#xff0c;红帽认证无疑是擢升技能与职业竞争力的关键密钥。今日&#xff0c;我们即将深度剖析 RHCA 红帽认证架构师这一…

[产品管理-4]:NPDP新产品开发 - 2 - 战略 - 制定企业经营战略目标的结构化方法与工具

目录 一、SWOT分析工具 1、SWOT分析工具概述 2、SWOT分析与企业战略目标制定的关系 3、SWOT分析在企业战略目标制定中的应用实例 4、SWOT分析的改进与应用建议 二、P E S T L E 分 析&#xff1a;外部环境分析 2.1 概述 1. 政治因素&#xff08;Political&#xff09; …

建筑机器人通用操作系统设计方案

建筑机器人操作系统通用发行版概述 1. 基础版&#xff08;Entry Level&#xff09; 目标用户&#xff1a;小型建筑公司、DIY爱好者或初学者。特点&#xff1a;提供基础的机器人控制和任务管理功能&#xff0c;支持简单的自动化作业流程&#xff0c;如基础的混凝土搅拌、物料搬…

盘点那些初级软件测试面试题汇总

一、请描述如何划分缺陷与错误严重性和优先级别&#xff1f; 给软件缺陷与错误划分严重性和优先级的通用原则&#xff1a; &#xff08;1&#xff09;表示软件缺陷所造成的危害和恶劣程度。 &#xff08;2&#xff09;优先级表示修复缺陷的重要程度和次序。 严重性&#xf…