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

strcmp函数的使用和模拟实现

8330887d86a845659e92dc18002dacca.png

目录

1.头文件

 2.strcmp函数的使用 

3.模拟strcmp函数实现  


小心!VS2022不可直接接触,否则!没这个必要,方源面色淡然一把抓住!顷刻炼化! 


1.头文件

strcmp函数的使用需要头文件

#include<string.h>

 2.strcmp函数的使用 

 bf4f660077d944e1a40c1034acbcaaf5.png

strcmp函数接收的是两个char型地址,strcmp函数会顺着这两个char型地址 ,顺藤摸瓜出整个字符串,一个一个的将每一个字符进行比较

简述:strcmp函数用于比较两个字符串大小

如果目标字符串 > 源字符串,则会返回大于0的值

如果目标字符串 = 源字符串,则会返回0

如果目标字符串 < 源字符串,则会返回小于0的值

示例如下:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
#include<string.h>
int main()
{char arr1[] = { "abc" };char arr2[] = { "agc" };int ret = strcmp(arr1, arr2);printf("%d ", ret);//abc < abg,打印小于0的数
}

在字符串比大小中,a<b<c<d<....,越靠后的字母越大

如果是大写比小写,一定是小写大,a > A

这是因为字符比较的是ASCII 值的大小,因为 a - 32 = A,所以小写大


3.模拟strcmp函数实现 

想要模拟strcmp函数实现,只需要一个一个判断字符大小即可,最终返回一个整数

那么,代码如下:

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int my_strcmp(char* arr1,char* arr2) {while (*arr1 == *arr2) {if (*arr1 == '\0') {return 0;}arr1++;arr2++;}return *arr1 - *arr2;
}
int main()
{char arr1[] = { "abcd" };char arr2[] = { "abc" };int ret = my_strcmp(arr1,arr2);printf("%d ", ret);
}

因为字符相减得到的整数是它们的ascII值,利用这一点可以实现 return *arr1 - *arr2,如果arr1大那就会得到相减后的ascII值,那一定是正数,反之则是负数

8fdd48caf53e46a897fd8a5554dbb454.png

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 台球助教小程序开发/APP源码部署
  • vue页面使用自定义字体
  • Redis:缓存击穿
  • 低空经济新概念
  • 1 Linux SSH安全加固_linux system-auth
  • HTML 基础,尚优选网站设计开发(二)
  • 数据结构应用实例(四)——最小生成树
  • 新能源汽车出海中的数据合规热点问题
  • UE5 半透明阴影 快速解决方案
  • tensorrt 下载地址
  • 解锁Web3.0——Scaffold-eth打造以太坊DApp的终极指南
  • 散户怎么在大A炒股挣钱?
  • JAVA基础:抽象类,接口,instanceof,类关系,克隆
  • APSME 2025 亚洲国际功率半导体、材料及装备技术展览会
  • Netty中用到了哪些设计模式
  • hexo+github搭建个人博客
  • (三)从jvm层面了解线程的启动和停止
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Debian下无root权限使用Python访问Oracle
  • Intervention/image 图片处理扩展包的安装和使用
  • java第三方包学习之lombok
  • Linux快速复制或删除大量小文件
  • oschina
  • Xmanager 远程桌面 CentOS 7
  • 电商搜索引擎的架构设计和性能优化
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 官方解决所有 npm 全局安装权限问题
  • 汉诺塔算法
  • 让你的分享飞起来——极光推出社会化分享组件
  • 数组的操作
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 智能网联汽车信息安全
  • 中文输入法与React文本输入框的问题与解决方案
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #APPINVENTOR学习记录
  • (8)STL算法之替换
  • (AngularJS)Angular 控制器之间通信初探
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Java入门)抽象类,接口,内部类
  • (WSI分类)WSI分类文献小综述 2024
  • (二)pulsar安装在独立的docker中,python测试
  • (二)斐波那契Fabonacci函数
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (含笔试题)深度解析数据在内存中的存储
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • .net 7 上传文件踩坑
  • .Net FrameWork总结
  • .Net MVC4 上传大文件,并保存表单
  • .NET 解决重复提交问题
  • .net 受管制代码
  • 。。。。。
  • /bin、/sbin、/usr/bin、/usr/sbin