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

解析C语言strcmp()函数

函数名:  strcmp

头文件: <string.h>

函数原型:  int strcmp(const char *str1,const char *str2);

功 能:   比较两个字符串的大小,区分大小写

参 数: str1和str2为要比较的字符串

返回值:  str1 > str2 , 返回 1;

                str1 < str2 , 返回 -1;

                str1 == str2 , 返回 0;

 函数表达:

第一种返回方式

#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{assert(str1 && str2);//比较while (*str1 == *str2){if (*str1 == '\0'){return 0;//相等}str1++;str2++;}if (*str1 > *str2)return 1;//大于elsereturn -1;//小于
}int main()
{char* p1 = "abcdef";char* p2 = "abcdef";int ret = my_strcmp(p1,p2);printf("ret = %d\n",ret);return 0;
}

 第二种返回方式

#include<stdio.h>
#include<assert.h>
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);
}int main()
{char* p1 = "abcdef";char* p2 = "bcdef";int ret = my_strcmp(p1,p2);printf("ret = %d\n",ret);return 0;
}

 

其中用了assert()函数

函数名: assert

头文件:<assert.h> 

函数原型: void assert( int expression );

功能: 断言一个表达式是否正确

参数:expression如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行

返回值:没有返回值

相关文章:

解析C语言strcmp()函数

函数名: strcmp 头文件&#xff1a; <string.h> 函数原型: int strcmp(const char *str1,const char *str2); 功 能: 比较两个字符串的大小&#xff0c;区分大小写 参 数&#xff1a; str1和str2为要比较的字符串 返回值&#xff1a; str1 > str2 , 返回 1&…...

初识scrapy

认识scrapyscrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架&#xff0c;我们只需实现少量的代码&#xff0c;就能实现数据的快速抓取scrapy使用了Twisted异步网络架构&#xff0c;可以加快下载速度 pip install twisted安装&#xff1a;pip install s…...

(JUC)核心线程 和 救急线程的区别;Executors-固定大小线程池单线程线程池

核心线程 和 救急线程的区别 救急线程是有个生存时间的&#xff0c;它执行完任务了&#xff0c;过了一段时间&#xff0c;没有新任务了&#xff0c;救急线程就会销毁掉&#xff0c;变成结束的状态 核心线程没有生存时间&#xff0c;它执行完任务后&#xff0c;它仍然会被保存…...

vue2的动画和过渡效果

文章目录过渡 & 动画Transition 组件基于 CSS 的过渡效果CSS 过渡类名 class为过渡效果命名CSS 过渡 transition实例1&#xff1a;实例2&#xff1a;CSS 动画自定义过渡的类名同时使用 transition 和 animation深层级过渡与显式过渡时长性能考量JavaScript 动画可复用过渡效…...

正数负数的取反运算推导过程

取反题目题目&#xff1a;数据常用位十进制数据举例 我们计算a 60的取反运算c~a 求c 引用的知识点知识点: 正数的反码 补码 都一样。 0的补码反码都一样 负数的反码&#xff0c;最高是标记符号位&#xff0c;其他位置1变0 1变0 负数的补码 反码1 步骤斜体样式本篇我们全用8位二…...

C语言 条件编译

目录 1. #if #elif #else #endif 2. #ifdef #else #endif 3. #ifndef #else #endif 4. 三者区别 根据不同情况编译不同代码、产生不同目标文件的机制&#xff0c;称为条件编译。 条件编译是预处理程序的功能&#xff0c;不是编译器的功能。 1. #if #elif #else #endif …...

Linux: ARM GIC只中断CPU 0问题分析

文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化&#xff1a;缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…...

测试软件5

一 css基础 css定义&#xff1a;可以设置网页中的样式&#xff0c;外观&#xff0c;美化 css中文名字&#xff1a;级联样式表&#xff0c;层叠样式表&#xff0c;样式表 二 css基础语法 1.style标签写在title标签后面 2.选择器{属性名1&#xff1a;属性值1&#xff1b;属性名…...

前端JS内存管理

JS内存管理 内存原理&#xff1a; 任何变成语言在执行的时候都需要操作系统来分配内存&#xff0c;只是有些语言需要手动管理分配的内存有些语言有专门来管理内存的方式 如 JVM 了解以上的概念之后&#xff0c;我们再来了解一下大致的内存周期 分配需要的内存使用内存在不使用…...

第七章.集成学习(Ensemble Learning)—袋装(bagging),随机森林(Random Forest)

第七章.集成学习 (Ensemble Learning) 7.1 集成学习—袋装(bagging),随机森林(Random Forest) 集成学习就是组合多个学习器&#xff0c;最后得到一个更好的学习器。 1.常见的4种集成学习算法 个体学习器之间不存在强依赖关系&#xff0c;袋装&#xff08;bagging&#xff09;…...

Java_面向对象

Java_面向对象 1.面向对象概述 ​ 面向对象是一种符合人类思想习惯的编程思想。显示生活中存在各种形态的不同事物&#xff0c;这些食物存在着各种各样的联系。在程序中使用对象来映射现实中的事物&#xff0c;使用对象的关系来描述事物之间的关系&#xff0c;这种思想就是面…...

【IoT】智能烟雾报警器

设计简介 硬件设计由AT89C51单片机、DS18B20温度传感器、4位共阳数码管、电源模块、报警模块、按键模块、MQ-2烟雾检测模块和ADC0832模数转换模块组成。 烟雾传感器MQ-2检测空气中的烟雾气体&#xff0c;通过ADC0832进行数据转换&#xff0c;经过单片机的运算处理后在数码管上…...

Python实现定时执行脚本(5)

前言 本文是该专栏的第17篇,后面会持续分享python的各种干货知识,值得关注。 笔者在前面有详细介绍过几种使用python实现定时执行任务的方法,可以说都是简单易上手的那种。而本文,再来详细介绍另外一种定时方法,那就是利用任务框架APScheduler(advanceded python schedu…...

JavaSe第4次笔记

1.转义字符和编程语言无关。 2.斜杠(\)需要转义&#xff0c;反斜杠(/)不需要转义。 3.不能做switch的参数的数据类型&#xff1a;long float double boolean( String可以)。 4.输入的写法&#xff1a;Scanner(回车自动带头文件(import java.util.Scanner;)) Scanner scan …...

epoll机制

预备知识 文件描述符file descriptor 文件描述符是Linux系统中对文件、套接字等I/O资源的抽象&#xff0c;每个打开的文件或套接字都有一个唯一的文件描述符。应用程序可以使用文件描述符来读写文件或进行网络通信。 epoll允许程序监控多个文件描述符&#xff0c;以便在这些…...

Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

1 明确概念首先知道几个单词的意思&#xff1a;并集 union交集 intersection补集 complement析取 disjunction减去 subtract1.1 并集对于两个给定集合A、B&#xff0c;由两个集合所有元素构成的集合&#xff0c;叫做A和B的并集。记作&#xff1a;AUB 读作“A并B”例&#…...

【Android笔记80】Android之Retrofit适配器和文件上传下载

这篇文章,主要介绍Android之Retrofit适配器和文件上传下载。 目录 一、Retrofit适配器 1.1、Retrofit适配器 (1)引入RxJava依赖 (2)定义接口...

Nodejs模块化

1.模块化 1.1.模块化的基本概念 模块化是指解决一个复杂问题时&#xff0c;自顶向下逐层把系统划分为若干模块的过程。对于整个系统而言&#xff0c;模块是可组合、分解和更换的单元。 1.2 编程中的模块化 编程领域的模块化就是把一个大文件拆成独立并相互依赖的多个小模块…...

C++STL基础

STL基础 诞生 cpp的面向对象和泛型编程的思想本质就是提高复用性诞生了STL库 基本概念 STL标准模板库STL从广义上分为容器、算法及迭代器容器和算法之间通过迭代器进行连接STL几乎所有的代码都采用了模板类或者模板函数 基本组件 容器、算法、迭代器、仿函数、适配器、空间配置…...

数学建模经验【更新中】

数学建模简单入门 一、 分工 3人&#xff0c;1人论文&#xff0c;1人代码主力&#xff0c;1人论文代码&#xff08;前一半时间主代码&#xff0c;后一半时间主论文&#xff09; Tips: 不养闲人&#xff0c;论文必须要在对代码和题目极其了解并且能跟上队友思路的情况下才能写…...

5分钟快速上手!用VeriStand为你的Simulink模型搭建一个简易监控仪表盘

5分钟快速上手&#xff01;用VeriStand为Simulink模型搭建实时监控仪表盘 在工程仿真领域&#xff0c;能够直观观察模型运行状态并实时调整参数&#xff0c;是提升开发效率的关键。想象一下这样的场景&#xff1a;你刚完成一个BUCK电路的Simulink建模&#xff0c;通过仿真验证了…...

洛谷 P1507:NASA的食物计划 ← 二维费用0/1背包问题

【题目来源】 https://www.luogu.com.cn/problem/P1507 【题目背景】 NASA&#xff08;美国航空航天局&#xff09;因为航天飞机的隔热瓦等其他安全技术问题一直大伤脑筋&#xff0c;因此在各方压力下终止了航天飞机的历史&#xff0c;但是此类事情会不会在以后发生&#xff0…...

同架构大数据量HGDB到HGDB数据迁移

文章目录环境文档用途详细信息环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7,银河麒麟 &#xff08;X86_64&#xff09; 版本&#xff1a;4.5.8 文档用途 本文介绍同架构大数据量情况下&#xff0c;为了减少停机时间&#xff0c;先搭建流复制同步数据&…...

基于pso-LSTM的锂电池SOH健康状态预测模型(NASA数据集)B0005、B0006、B...

基于pso-LSTM的锂电池SOH健康状态预测模型&#xff08;NASA数据集&#xff09;B0005、B0006、B0007、B0008四个电池数据集。 在数据预处理阶段&#xff0c;用户可以自行完成SOH&#xff08;State of Health&#xff09;的计算&#xff0c;然后通过pso-LSTM神经网络进行预测。 该…...

二极管限幅与钳位电路设计原理与应用

基于二极管的限幅与钳位电路设计精解1. 二极管基础特性与工程应用1.1 单向导电特性分析二极管作为半导体器件的基础元件&#xff0c;其核心特性是单向导电性。当正向偏置电压超过导通阈值&#xff08;硅管约0.7V&#xff09;时呈现低阻态&#xff0c;反向偏置时则保持高阻态。这…...

Kali Linux安装失败?5个常见报错解决方案(虚拟机专用版)

Kali Linux虚拟机安装报错实战指南&#xff1a;5个高频问题深度解析 当你兴致勃勃地在VMware里安装Kali Linux准备大展身手时&#xff0c;突然弹出的报错信息就像一盆冷水浇下来。别急着重装——90%的安装问题都有现成解决方案。本文将聚焦虚拟机环境下最棘手的5类安装报错&…...

Go语言广播系统设计:基于Channel的高性能事件分发机制

引言 在后端系统架构中&#xff0c;事件广播是一种常见的通信模式。本文将深入分析一个基于Go语言channel实现的广播管理器&#xff0c;探讨其设计思想、实现细节以及在实际项目中的应用价值。 参考代码 点击直达 背景与需求 在许多应用场景中&#xff0c;我们需要实现一对…...

鸿蒙Next通讯录实战:用ArkUI 3.0手把手教你打造新建联系人页面(附完整代码)

鸿蒙Next通讯录实战&#xff1a;用ArkUI 3.0构建企业级新建联系人页面 在移动应用开发领域&#xff0c;通讯录功能一直是检验开发者UI构建和数据管理能力的经典场景。鸿蒙Next作为新一代分布式操作系统&#xff0c;其ArkUI 3.0框架为开发者提供了声明式UI编程范式&#xff0c;让…...

避坑指南:SpringBoot整合Drools 7.20时热部署冲突的解决方案

SpringBoot与Drools 7.20热部署冲突深度排查指南 当SpringBoot的devtools热部署功能遇上Drools规则引擎&#xff0c;就像两个高效率的工人同时修改同一台机器——看似都能独立工作&#xff0c;组合时却可能引发难以察觉的运行时故障。本文将带您深入这个典型的技术冲突现场&…...

MBPFan:解决MacBook Linux系统散热难题的智能温控工具

MBPFan&#xff1a;解决MacBook Linux系统散热难题的智能温控工具 【免费下载链接】mbpfan 项目地址: https://gitcode.com/gh_mirrors/mb/mbpfan 当你在Linux系统下使用MacBook处理文档、编写代码或观看视频时&#xff0c;是否遇到过设备突然发烫、风扇噪音忽大忽小的…...