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

这篇具有很好参考价值的文章主要介绍了【c语言】字符串比较 | API仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


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

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


一、字符串比较

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

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

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

标准库函数strncmp:

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

使用:

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

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


二、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"));//-1
	 printf("%d\n", my_strcmp("ABCDE", "ABCDE"));//0
	 printf("%d\n", my_strcmp("ABCDe", "ABCDE"));//1

	return 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函数比较效果相同:

【c语言】字符串比较 | API仿真文章来源地址https://www.toymoban.com/news/detail-435472.html

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

到了这里,关于【c语言】字符串比较 | API仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言比较两个字符串是否相等的案例讲解

    思路分析 比较两个字符串是否相等要看两个字符串的长度和内容是否一样,如果长度和内容有一个不一样那么这两个字符串不相等。 方法1:strcmp函数可以比较2个字符串的大小和内容是否一样,我们可以使用这个函数来进行判断。 知识补充: strcmp函数用来比较两个字符串并

    2024年02月16日
    浏览(63)
  • Python字符串比较:如何判断两个字符串是否相等?

    Python字符串比较:如何判断两个字符串是否相等? 在Python编程中,字符串是最常用的数据类型之一。当我们需要比较两个字符串时,通常需要判断它们是否相等。这篇文章将详细介绍Python中比较两个字符串的方法。 使用“==”运算符比较字符串 在Python中,可以使用“==”运算

    2023年04月11日
    浏览(68)
  • (字符串) 844. 比较含退格的字符串——【Leetcode每日一题】

    难度:简单 给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。 # 代表退格字符。 注意 :如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:s = “ab#c”, t = “ad#c” 输出:true 解释:s 和 t 都会变成 “ac”。 示例 2: 输入

    2024年02月11日
    浏览(42)
  • 6.string字符串的比较

    比较结果是真或假, 比较:字符串是1和1比较 然后9和2 比较 大后面就不用比了 对应字符比他大就行了。 结果:如果这个是符合比较运算符的就返回真。反之假 跟具不同的目的选择不同的运算符, 结果只有真和假,运算符不是最后的结果。 总结:如果这个是符合比较运算符

    2024年02月15日
    浏览(39)
  • Python实现字符串相似度比较

    Python实现字符串相似度比较 在日常的开发中,我们可能需要对不同的字符串进行比较,以判断它们之间的相似程度。例如,在搜索引擎、拼写检查和数据清洗等任务中,字符串相似度比较是一项非常重要的技术。本文将介绍如何使用Python实现字符串相似度比较。 概述 字符串

    2024年02月06日
    浏览(45)
  • Python中的比较两个字符串

    📚 个人网站:ipengtao.com 在Python编程中,字符串比较是一项常见且关键的操作,涵盖了诸多方法和技巧。比较两个字符串是否相等、大小写是否一致,或者在一个字符串中寻找特定的子字符串,都是日常开发中经常遇到的需求。除此之外,使用正则表达式进行模式匹配、比较

    2024年01月19日
    浏览(53)
  • Python(八十三)字符串的比较操作

    ❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是

    2024年02月13日
    浏览(47)
  • Java字符串比较的方法(3种)

    equals()方法将两个字符串每个字符是否相同进行逐一比较,若相同返回true反之返回false,对于字符的大小写也在检查范围内,equals()方法格式如下:str1.equals(str2); equalsIgnoreCase()方法与equals()方法完全相同,唯一不同是equalsIgnoreCase()方法比较时不区分大小写,equalsIgnoreCase()方法格

    2024年02月15日
    浏览(74)
  • java中比较两字符串是否相等

    字符串比较的三种方式:==,equals,Objects.equals  打印结果 a==b为false 因为两个字符串的索引值不同。 打印结果为  a.equals(b)为true 因为两个字符串的值相同。 所以在java中进行字符串比较时,经常使用equals比较两字符是否相同。一个固定的字符串和字符串数组(或list集合)进行

    2023年04月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包