【c语言】字符串比较 | API仿真

article/2025/7/19 3:09:07

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ


c语言系列专栏:c语言之路重点知识整合

字符串知识点:字符串基本概念、存储原理


字符串比较 目录

  • 一、字符串比较
  • 二、strncmp仿真
    • 声明:
    • 指针方式定义:
    • 调用测试:
    • 运行结果:

一、字符串比较

字符串比较是对两个或多个字符串进行逐个字符的比较判断是否相等

strcmp() 函数根据两个字符串的第一个不同字符的 ASCII 码对比大小

返回 1 代表 大于关系 ; 返回 0代表等于关系;返回-1代表小于关系

标准库函数strncmp:

image-20230506151200574

使用:

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{/*字符串比较函数*/ /*strcmp*/printf("%d\n", strcmp("ABCDE", "a"));//str2的ASCII码大于str1就输出-1printf("%d\n",strcmp("ABCDE","ABCDE"));//str2的ASCII码等于str1就输出0printf("%d\n", strcmp("ABCDe","ABCDE"));//str2的ASCII码小于str1就输出1return 0;
}

image-20230506151341144


二、strncmp仿真

字符串常用于文字处理,常用且实用。因此其常用功能被封装成了一套API。可通过string.h进行使用。

通过仿真我们可以理解其函数内部工作机制的细节

定义一个my_strncmp函数,模仿strncmp函数比较字符串

不使用标准函数strncmp比较,使用自己定义的my_strncmp函数

声明:

int my_strcmp(const char* str1, const char* str2);

指针方式定义:

 int my_strcmp(const char* str1, const char* str2){const char* p1 = str1;const char* p2 = str2;while (*p1 == *p2 && *p1){p1++;p2++;}//return *p1 - *p2; return *p1 - *p2 ? (*p1 - *p2) / abs(*p1 - *p2) : 0;}

调用测试:

#include <stdio.h>
#include <string.h>
#include <math.h>
int my_strcmp(const char* str1, const char* str2);
int main()
{/*字符串比较函数*/ /*strcmp*///printf("%d\n", strcmp("ABCDE", "a"));//-1//printf("%d\n",strcmp("ABCDE","ABCDE"));//0//printf("%d\n", strcmp("ABCDe","ABCDE"));//1/*仿真字符串比较函数 strcmp */printf("%d\n", my_strcmp("ABCDE", "a"));//-1printf("%d\n", my_strcmp("ABCDE", "ABCDE"));//0printf("%d\n", my_strcmp("ABCDe", "ABCDE"));//1return 0;
}
/*仿真字符串比较函数 strcmp */int my_strcmp(const char* str1, const char* str2){const char* p1 = str1;const char* p2 = str2;while (*p1 == *p2 && *p1){p1++;p2++;}//return *p1 - *p2; return *p1 - *p2 ? (*p1 - *p2) / abs(*p1 - *p2) : 0;}

运行结果:

与原先的strncmp函数比较效果相同:

image-20230506151702008

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!

http://chatgpt.dhexx.cn/article/bLpvbncY.shtml

相关文章

C/C++中比较字符串的方法

一、strcmp函数 适用对象 char*类型字符串 函数介绍 strcmp函数是cstring库中的函数&#xff0c;包含在string.h头文件中 用法 strcmp的两个参数都是char*类型&#xff0c;将要比较的字符串传入即可&#xff0c;根据返回值得到比较结果 举例 二、compare()函数 适用对象…

【c语言】字符串比较

独立实现标准字符串库的strcmp函数&#xff0c;即字符串比较函数&#xff0c;从键盘输入两个字符串&#xff0c;按字典序比较大小&#xff0c;前者大于后者输出1&#xff0c;前者小于后者输出-1&#xff0c;两者相等输出0。 样例输入: apple one 样例输出: -1 样例输入: hello…

C语言 - 比较字符串大小

程序源码 #include <stdio.h> int mStrcpy(char *s, char *s1, int len); int main() {char str[2][20];int i, j;printf("请输入2个字符串&#xff01;\n");for(i0; i<2; i)gets(str[i]);printf("字符串大小比较结果&#xff1a;%d\n", mStrcpy…

c语言比较两个字符串是否相等strcmp

c语言提供了几个标准库函数&#xff0c;可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子&#xff1a; #include <stdio.h> #include <string.h> int main(void) {char str_1[] "abc"; char str_2[] "abc";char str_3…

(c语言)比较三个字符串的大小

问题描述&#xff1a; 比较三个字符串的大小&#xff0c;并且按从小到大的顺序输出。 程序分析&#xff1a; 1.在写这个程序的时候&#xff0c;主要是写了一个swap函数&#xff0c;调用了标准库函数中的strcmp来实现的。 2.在写swap这个函数的时候将函数参数设置为两个二级…

c语言怎么进行字符串比较,c语言怎么进行字符串比较

比较方法:1、bcmp(),比较字符串的前n个字节是否相等;2、strcmp(),区分大小写的比较字符串;3、stricmp(),不区分大小写的比较字符串;4、strncmp()或strnicmp(),区分大小写的比较字符串的前n个字符。 本教程操作环境:windows7系统、c99版本、Dell G3电脑。 使用bcmp()–…

C语言中字符串之间的比较【char*】/【string】

在C/C语言中表示字符串的方式有两种&#xff1a; 1、char* a 2、string b 对于这两种方式各自之间比较又是怎么处理的呢&#xff1f; 我们知道&#xff0c;数值直接进行比较&#xff0c;直接用>、<、来判断。而对于一串字符这样比较对不对呢&#xff1f; 1、对于cha…

C语言中字符串比较

在 单片机串口实现字符串命令解析 这篇文章中分析了在串口通信中如何去解析字符串命令&#xff0c;这篇文章就来讨论下字符串比较的方法都有哪些&#xff1f; 说起比较运算&#xff0c;肯定第一时间想到了C语言中关于比较的相关运算符 “>、<、&#xff01;、>、<、…

【C语言】正确比较两个字符串

目录 两种常见的错误比较方法 &#xff08;1&#xff09;为什么两个字符串不能直接用大于小于号比较&#xff1f; &#xff08;2&#xff09;为什么不能用数组名直接比较 字符串比较大小的实质 两种比较字符串两种方法 &#xff08;1&#xff09;难的方法 &#xff08;2&…

课程设计:Java编写的基于KNN算法的手写数字识别软件

0x00 概述 本软件是使用Java语言编写的PC端图形界面程序&#xff0c;也支持命令行形式运行 主要功能为识别用户在软件内绘板上手写的数字 同时也支持使用给定的训练集批量识别符合本软件定义格式的手写数字&#xff08;该功能仅支持命令行形式使用&#xff09; 0x01 设计逻…

手写数字识别问题(5)——完结

经过接近15周的艰苦努力&#xff0c;毕业设计&#xff08;基于MATLAB的手写数字识别系统&#xff09;已经完结。 设计过程中遇到的部分问题可查阅博客&#xff1a; 手写数字识别问题&#xff08;1&#xff09;——关于MNIST数据集手写数字识别问题&#xff08;2&#xff09;—…

常用的OCR文字识别软件有哪些

随着大家办公需求的增加&#xff0c;办公软件如雨后春笋般纷纷面世&#xff0c;旨在提高大家的工作效率&#xff0c;OCR文字识别软件便是不可缺少的办公软件之一。那么&#xff0c;有哪些专业又好用的OCR文字识别软件呢&#xff1f;小编来为大家推荐几款&#xff0c;以供参考。…

安卓实现扫一扫识别数字

本文已授权微信公众号&#xff1a;鸿洋&#xff08;hongyangAndroid&#xff09;原创首发。 公司业务需求&#xff0c;需要做手机号码的识别。所以有了此篇文章&#xff0c;现在就将实现过程分享给大家。 1.准备工作 首先实现识别数字等字符&#xff0c;我们要知道需要采用OC…

ABBYY FineReader15最新版图片文字识别转换软件

在日常生活中&#xff0c;我们会遇到需要将各种文字、图片、扫描图片等转换为文字的情况。想要轻松解决这些问题&#xff0c;需要使用到OCR文字识别。但对于许多新手来说&#xff0c;OCR文字识别是陌生的。今天小编就给大家介绍一下&#xff0c;OCR文字识别怎么使用&#xff0c…

数字识别代码完整

数字识别代码 近期完成了一个数字识别的代码&#xff0c;开始也不会做&#xff0c;但通过了解和查询自己也了解到了一些在这你给大家做个分享&#xff08;本代码开发环境Opencv3&#xff09;这里分享给大家一个比较好的网址&#xff0c;我的代码也是参照的这个改动的完整的代码…

Labview OCR数字识别

::: keywords labview,OCR,灰度,对比度,数字识别 ::: 下载文件 前言 OCR &#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;是指电子设备&#xff08;例如扫描仪或数码相机&#xff09;检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定…

ABBYY15免费照片识别文字识别软件

照片识别文字的软件有哪些&#xff1f;在日常的工作的时候&#xff0c;小伙伴们是不是经常会借助拍摄照片记录一些比较重要的事情或者是一些比较重要的笔记&#xff0c;等回头空闲出来的时候在去整理&#xff0c;那么这时候&#xff0c;如果我们运用好图片识别文字这项技术&…

ABBYY FineReader15最新专业的PDF OCR图片文字识别软件

ABBYY FineReader PDF15是专业的OCR图片文字识别软件&#xff0c;可以快速、准确、方便地将扫描纸质文件、PDF格式及数字或移动电话图像转换成可编辑格式——Microsoft Word、Excel、PowerPoint、可检索的PDF、HTML、DjVu等。99.8%的识别准确率即刻识别文本&#xff0c;复制和粘…

怎么识别数字?看看这些识别软件能不能帮上你

随着数字时代的到来&#xff0c;数字在我们的生活中出现的频率也在不断的提高&#xff0c;而数字识别在我们的生活中也有了越来越重要的作用&#xff0c;给大家举个例子&#xff0c;当我们在商店购物时&#xff0c;往往需要使用银行卡进行支付&#xff0c;在这个过程中&#xf…

完全免费的OCR文字识别软件

今天我要分享给大家的是两款完全免费的OCR文字识别软件&#xff0c;而且这两款软件都是本地版无需联网就能使用&#xff0c;而且没有使用次数的限制。 软件准备好了&#xff1a; 链接: 百度网盘 请输入提取码 提取码: 6666 01软件信息 软件名称&#xff1a;OCR文字识别软件 …