C语言 ——— 学习、使用 strcmp函数 并模拟实现

news2024/9/21 4:24:33

目录

strcmp函数的功能

学习strcmp函数​编辑

使用strcmp函数 

模拟实现strcmp函数 


strcmp函数的功能

strcmp函数的功能是字符串比较,两个字符串的对应位置的字符进行比较,直到字符不同或达到终止的 '\0' 字符为止

举例说明:

字符串1:"abcdef"

字符串2:"abq"

对应位置的字符进行比较,字符 a 和 b 相等,字符 c 和 q 不相等,字符 q 的ASCII码值大于 字符 c 的 ASCII 码值,所以字符串 "abq" 大于字符串 "abcdef"  


学习strcmp函数

strcmp函数的参数:

str1 和 str2 两个字符指针,用来接收需要比较的字符串的首地址,因为只是需要比较,不会改变字符串的内容,所以可以加上 const 关键字修饰

strcmp函数的返回值:第一个字符串 小于 第二个字符串时,返回小于0的数字

第一个字符串 等于 第二个字符串时,返回等于0的数字

第一个字符串 大于 第二个字符串时,返回大于0的数字 


使用strcmp函数 

验证第一个字符串 小于 第二个字符串时:(默认返回-1)

验证第一个字符串 等于 第二个字符串时:(默认返回0)

验证第一个字符串 大于 第二个字符串时:(默认返回1)


模拟实现strcmp函数 

int my_strcmp(const char* str1, const char* str2)
{
	// 断言
	assert(str1 != NULL);
	assert(str2 != NULL);

	// 判断是否相等
	while (*str1 == *str2)
	{
		if (*str1 == '\0' || *str2 == '\0')
			return 0;

		str1++;
		str2++;
	}

	// 判断是否大于或者小于
	if (*str1 > *str2)
		return 1;
	else
		return -1;
}

代码验证:

验证第一个字符串 小于 第二个字符串时:(默认返回-1)

验证第一个字符串 等于 第二个字符串时:(默认返回0)

验证第一个字符串 大于 第二个字符串时:(默认返回1)

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

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

相关文章

法制史学习笔记(个人向) Part.7

法制史学习笔记(个人向) Part.7 11. 清朝法律制度 11.1 立法概述 11.1.1 立法指导思想 简单来说是:详译明律,参以国制; 努尔哈赤时期,后金政权处于由习惯法到成文法的过渡过程中;皇太极统治时期,奉行“参…

Linux中vim的基本介绍和使用

善为理者,举其纲,疏其网。 vim 1、vim介绍2、命令模式详情3、底行模式详情4、困难问题5、历史存疑问题6、vim配置问题6、1、配置的原理6、2、一键式配置 1、vim介绍 如果我面想要在Linux上编写代码的话,我就需要vim来帮助我们编写代码。但是…

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--实现修改商品的名字与价格功能(万字爆更)增查改删,三端交互样样齐全

技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 前文几个功能的实现的博客 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作&am…

Pycharm2023.1安装及其破解(含安装包)

一、下载 安装包 pycharm-professional-2023.1.exe https://www.alipan.com/s/f9WgrwLRbVn 提取码: 0yow 二、安装 三、激活 激活码:pycharm专业版激活码,2025.1月结束_pycharm序列号-CSDN博客 四、汉化

2024年8月2日(安装MySQL,以及各种操作)

一、安装并配置MySQL 1、下载mysql软件包 [rootmysql ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、解压 [rootmysql ~]# tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、检查是否具有mariadb/mysql&…

技术成神之路:设计模式(十一)迭代器模式

前言 迭代器这个词听到并不陌生吧,我们再开发中遍历HashMap 和 HashSet的时候 用到的迭代器和这里的迭代器是一个概念,当然,这个模式不是教你如何去实现的,而是以了解为主。 介绍 迭代器模式(Iterator Pattern&#…

携程实习生0506笔试-编程题

解题思路: 看坐标之和,奇数偶数不同字符即可。 解题思路: 题目应该是求连续的k长度最大值,遍历比较字符串,最后再取模。 import java.util.Scanner;public class Main {public static void main(String[] args) {Scann…

Keysight(原Agilent) E4980AL 精密 LCR 表特性与技术指标

Keysight(原Agilent) E4980AL 精密 LCR 表为基础 LCR 表树立了行业标准,可在多个频率范围内提供更佳的精度、速度和通用性。E4980AL 结合了种类繁多的附件,适用于一般研发和生产环境中的各种元件和材料测量。也可通过频率升级而提升投资回报率。 Keysig…

媲美Element Plus JuanTree终极实战:虚拟滚动

JuanTree组件功能迭代终于来到了终章——虚拟滚动实现。 有了前面学习的铺垫:vue大数据量列表渲染性能优化:虚拟滚动原理 把示例的实现用到JuanTree组件就变得非常的简单了。 功能视频演示: 自研Vue3 Tree组件 - 虚拟滚动功能演示 先来看效…

文档在线预览:keking/kkFileView踩坑记

文章目录 一、概述1、官方文档2、使用 二、部署服务1、传统部署方式(1)环境要求(2)生成部署包 2、docker部署方式 三、踩坑1、预览并发问题&预览首次打开慢2、字体问题乱码3、水印问题4、使用nginx代理5、docker部署指定配置 …

stm32 RAM for Algorithm问题,已解决

在此界面将 programming Algorithm内的flash remove,然后再重选就能解决

Drools

Drools基本了解 谈谈对业务规则管理系统的了解 举例说明 规则引擎系统是一个规则管理系统,接受数据输入、解释业务规则、根据业务规则做出业务决策的一个系统,其适用场景有贷款风险评估、积分优惠系统、保险理赔系统。规则是由“条件动作”组成&#x…

雅萌五代射频仪拆机图

雅萌五代射频仪拆机图,相对之前的版本,这个射频仪的头部电极部分,进行结构的优化,整个面比较平整光滑,不容易残留凝胶

allegro学习之一

1)favorite设置界面 2)双单位显示界面设置 3)高亮实心显示 4)自己设置的favorite 5)导线圆滑显示 6)plane的使用场景 7)add to visibility的方法 8)net group的使用 效果图如下&am…

实施运维方案(Word原件)

编写目的: 作为项目运维服务质量管理的总纲,规范和指导公司运维服务质量管理,加强运维服务质量管理的有效性。保证运维服务的整体质量,提升公司运维服务的整体质量水平。使公司能够为客户提供更高质量的运维服务,保障公…

【优选赛事】2024年iCAN大赛AI视觉检测设计挑战赛

iCAN大学生创新创业大赛(以下简称“iCAN大赛”")是一个无固定限制、鼓励原始创新的赛事,自2007年发起至今,得到了广大青年学生的热爱。2010年,iCAN大赛获批《教育部、财政部关于批准2010年度大学生竞赛资助项目的通知》大学生竞赛资助项…

Windows上安装EMQX作为MQTT服务器以及配置MQTTX客户端

一、安装EMQX MQTT服务器 EMQX 是一个高性能、可扩展的物联网消息中间件,EMQX 实现了 MQTT 协议的服务器端,即 MQTT Broker,它负责接收来自客户端的连接请求,处理订阅、发布消息,并将消息转发给相应的订阅者。 下载E…

大模型训练流程解析

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl训练大模型是一个复杂且资源密集的过程,它不仅仅要求大量的计算资源和时间,还涉及多个关键步骤和要素。这个过程需要从数据的收集、清洗、整理到模型的设计与选择,再到模型的训练、评估与优化,…

Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明

全文详见个人独立博客:Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明 Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明更新节奏缓慢,因为每晚学习注意力不够集中,学习进展缓慢。本还给自己找了一大堆其他理由&#xff0…

tof系统标定流程之双频测距与代码详解

tof系统标定流程之双频测距目录 1、双频测距原理2、双频测距流程3、双频测距代码1、双频测距原理 为什么需要双频测距,只用一个频率测距不行吗?实际上一个频率的测距范围有限,以100MHZ/80MHZ/10MHZ/15MHZ的频率为例,其测距范围分别是1.5m,1.875m,15m,10m,频率越低测距范围…