[字符串和内存函数]strcmp字符串函数的详解和模拟
strcmp函数
strcmp函数是一个用于比较两个字符串的C标准库函数。它的原型为:
int strcmp(const char* str1, const char* str2);
strcmp函数会比较str1和str2两个字符串的字符序列,并返回一个整数值来表示它们之间的大小关系。返回值的含义如下:
- 如果str1和str2相等,返回0。
- 如果str1小于str2,返回一个负数。
- 如果str1大于str2,返回一个正数。
以下是一个使用strcmp函数的示例:
#include <stdio.h>
#include <string.h>int main() {char str1[] = "Hello";char str2[] = "World";int result = strcmp(str1, str2);if (result == 0) {printf("str1和str2相等\n");} else if (result < 0) {printf("str1小于str2\n");} else {printf("str1大于str2\n");}return 0;
}
输出结果为: str1小于str2

strcmp函数模拟
思路
(1)由于要比较两个字符串,所传入字符串后不能改变其值要用const对str1和str2进行修饰保护并对sre1与str2进行断言保护(2)使用循环并解引用str1和str2并判断其是否相等,如果相等循环继续str1++并且str2++直到遇到'\0'此时返回0
(3)若发现str1与str2解引用后不相等则返回*str1-*str2
代码
//模拟实现
int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);while (*str1 == *str2){if (*str1 == '\0'){return 0;}str1++;str2++;}return(*str1 - *str2);
}
相关文章:
[字符串和内存函数]strcmp字符串函数的详解和模拟
strcmp函数 strcmp函数是一个用于比较两个字符串的C标准库函数。它的原型为: int strcmp(const char* str1, const char* str2);strcmp函数会比较str1和str2两个字符串的字符序列,并返回一个整数值来表示它们之间的大小关系。返回值的含义如下ÿ…...
zookeeper 常见问题处理
调整jvm参数 [rootvm-02 conf]# cat /opt/app/zookeeper-3.4.14/bin/zkEnv.sh |grep java.env -A3 -B3ZOOCFG"$ZOOCFGDIR/$ZOOCFG"if [ -f "$ZOOCFGDIR/java.env" ] then. "$ZOOCFGDIR/java.env" fiif [ "x${ZOO_LOG_DIR}" "x&…...
repo 命令
repo命令是Google开发的用于管理Android版本库的一个工具。 repo命令并不是用于取代git,而是用Python对git进行了一定的封装,简化了对多个Git版本库的管理。 repo init -u -b -m <manifest 文件名称> repo sync 相当于 git clone 获取 git remote…...
一、 计算机网络概论
一、计算机网络概论 1、计算机网络概述 1.1、概念 计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统 是一些互连的、自治的计算机系统的集合 以能够相互共享资源的方…...
从零学习开发一个RISC-V操作系统(一)丨计算机组成原理相关知识与RISC-V指令集简介
本篇文章的内容 一、计算机组成原理的相关知识1.1 计算机的硬件组成1.2 程序的存储与执行1.3 程序语言的设计和进化1.4 存储设备的层次结构1.5 操作系统 二、RISC-V的指令集ISA简介2.1 什么是ISA2.2 复杂指令集(CISC)和精简指令集(RISC&#…...
C++ - 异常介绍和使用
前言 我们在日常编写代码的时候,难免会出现编写错误带来程序的奔溃,或者是用户在使用我们编写的程序时候,使用错误所带来程序的奔溃。 在C 当中 可以对你觉得可能发生 错误 的地方在运行之前进行判断,发生错误可以给出提示。 C…...
iText实战--在现有PDF上工作
6.1 使用PdfReader读取PDF 检索文档和页面信息 D:/data/iText/inAction/chapter03/image_direct.pdf Number of pages: 1 Size of page 1: [0.0,0.0,283.0,416.0] Rotation of page 1: 0 Page size with rotation of page 1: Rectangle: 283.0x416.0 (rot: 0 degrees) Is reb…...
SQL优化--count优化
select count(*) from tb_user ;在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个 数,效率很…...
IDEA下使用Spring MVC
<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…...
2022基金从业人员资格管理及后续职业培训 部分答案(自答)
2022基金从业人员资格管理及后续职业培训 区块链在金融交易后处理中的应用私募基金行业典型违法案例分析《证券法》修订情况报告《刑法修正案(十一)》金融犯罪条款中国结算港股通结算业务介绍商品投资与商品配置价值气候技术:实现双碳目标的技…...
阿里云通义千问向全社会开放,近期将开源更大参数规模大模型
9月13日,阿里云宣布通义千问大模型已首批通过备案,并正式向公众开放,广大用户可登录通义千问官网体验,企业用户可以通过阿里云调用通义千问API。 通义千问在技术创新和行业应用上均位居大模型行业前列。IDC最新的AI大模型评估报告…...
数据结构:二叉查找树
文章目录 二叉查找树一,概述二,添加数据三,删除数据 二叉查找树 一,概述 二叉查找树,也称为二叉搜索树,是一种特殊的二叉树,它或者是一颗空树,或者具有以下性质:对于每…...
Redis的介绍,安装Redis的方式
🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 Redis 初识Redis1.1 认识Redis1.2 安装Redis的方式…...
深入理解CI/CD流程:改变你的开发生命周期
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
【React】React入门
目录 一、何为React二、React与传统MVC的关系三、React的特性1、声明式编程①、实现标记地图 2、高效灵活3、组件式开发(Component)①、函数式组件②、类组件(有状态组件)③、一个组件该有的特点 4、单向式响应的数据流 四、虚拟DOM1、传统DOM更新①、举…...
面相面试知识--Lottery项目
面相面试知识–Lottery项目 1.设计模式 为什么需要设计模式? (设计模式是什么?优点有哪些?) 设计模式是一套经过验证的有效的软件开发指导思想/解决方案;提高代码的可重用性和可维护性;提高团…...
《Python趣味工具》——自制emoji2(2)
今天,我们将会完成以下2个内容: 绘制静态emoji总结turtle中常用的绘图函数 文章目录 一、绘制静态emoji::sparkles: 画脸::sparkles:绘制嘴巴::sparkles:绘制眼白:绘制眼白-Part1:绘制眼白—pa…...
【面试刷题】——C++四种类型转化
C支持多种类型转换操作,其中包括四种主要类型转换方式: 隐式类型转换(Implicit Conversion): 隐式类型转换是自动发生的类型转换,由编译器自动完成。 它用于处理不同数据类型之间的运算,例如将…...
集成Activiti-Modeler流程设计器
集成Activiti-Modeler流程设计器 Activiti Modeler 是 Activiti 官方提供的一款在线流程设计的前端插件,可以方便流程设计与开发人员绘制流程图,保存流程模型,部署至流程定义等等。 1、材料准备 首先我们需要获取activiti-explorer.zip&…...
【深度学习】 Python 和 NumPy 系列教程(十一):NumPy详解:3、数组数学(元素、数组、矩阵级别的各种运算)
目录 一、前言 二、实验环境 三、NumPy 0、多维数组对象(ndarray) 多维数组的属性 1、创建数组 2、数组操作 3、数组数学 1. 元素级别 a. 直接运算 b. 加法:np.add()函数 c. 减法:np.subtract()函数 d. 乘法…...
EVA-01部署教程:Qwen2.5-VL-7B模型服务API封装+NERV风格响应协议
EVA-01部署教程:Qwen2.5-VL-7B模型服务API封装NERV风格响应协议 1. 引言:欢迎来到NERV指挥中心 想象一下,你面前有一个能“看懂”图片的智能助手,但它不是普通的聊天窗口,而是一个充满未来感的机甲驾驶舱。紫色的装甲…...
开箱即用!LongCat动物百变秀本地部署指南,小白也能快速上手
开箱即用!LongCat动物百变秀本地部署指南,小白也能快速上手 1. 什么是LongCat动物百变秀? LongCat动物百变秀是一款基于美团开源模型开发的AI图片编辑工具,专门用于动物图片的创意编辑。它最大的特点是能够通过简单的自然语言描…...
终极指南:facenet-pytorch API参考手册与完整函数方法详解
终极指南:facenet-pytorch API参考手册与完整函数方法详解 【免费下载链接】facenet-pytorch Pretrained Pytorch face detection (MTCNN) and facial recognition (InceptionResnet) models 项目地址: https://gitcode.com/gh_mirrors/fa/facenet-pytorch f…...
10X探头隐藏技能:除了衰减信号,它如何用补偿电容拯救你的高频测量?
10X探头的高频测量奥秘:补偿电容如何成为信号保真的关键 在电子测量领域,示波器探头是工程师们不可或缺的工具,而10X探头凭借其独特的设计在高频测量中展现出无可替代的优势。本文将深入探讨10X探头内部补偿电容的工作原理,揭示它…...
Python自动化办公:3种PDF水印处理技巧(附完整代码)
Python自动化办公:3种PDF水印处理技巧(附完整代码) 在数字化办公场景中,PDF文档的水印处理已成为高频需求。无论是合同归档需要添加版权标识,还是内部文件流转需清除敏感标记,传统手动操作既耗时又易出错。…...
避坑指南:Python操作Word文档最常见的5个错误(python-docx实战心得)
Python-docx实战避坑指南:5个高频错误与解决方案 在自动化办公场景中,Python操作Word文档的需求日益增长,而python-docx库作为主流工具,其易用性背后隐藏着不少"暗礁"。许多开发者在基础教程阶段一帆风顺,却…...
2026年03月GESPC++二级真题解析(含视频)
视频讲解:GESP2026年3月二级C真题讲解 一、单选题 第1题 解析: 答案B,ACD选项都是向机器人输入信息,是输入设备 第2题 解析: 答案D,判断是 “ 菱形框 ” 第3题 解析: 答案D,变…...
OpenClaw配置备份指南:GLM-4.7-Flash环境快速迁移方案
OpenClaw配置备份指南:GLM-4.7-Flash环境快速迁移方案 1. 为什么需要环境迁移? 上周我的主力开发机突然硬盘故障,导致精心配置的OpenClaw环境全部丢失。重装后发现要重新对接GLM-4.7-Flash模型、配置飞书通道、安装十几个自定义技能——这个…...
NXP S32K3xx之HSE密钥管理与安全服务实战
1. HSE密钥管理基础:从零开始理解安全引擎 第一次接触NXP S32K3xx的HSE模块时,我被各种密钥术语搞得晕头转向。经过几个实际项目的打磨,现在我可以负责任地告诉你:理解HSE密钥管理就像学习一门新语言,掌握基础词汇后就…...
降重不靠删,降AI不靠装——百考通用语义重构守住你的原创观点
在2026年的高校毕业季,一种新型的不公正在悄然制度化: 不是抄袭者被放过,而是原创者被怀疑; 不是敷衍者被批评,而是严谨者被标记; 不是懒惰者被警告,而是认真写了一篇好论文的人,被迫…...
