qsort函数 结构体比较(strcmp函数(比较字符串的大小))

news2024/11/13 16:21:54

strcmp函数应用于qsort函数,排序创建函数指针时比较字符串大小。

这里我创建了一个简单的学生结构体,这个结构体只包含名字跟年龄两个信息。

在创建函数指针cmp_stu_age后,进行年龄大小比较,强制类型转换成stu*。

int cmp_stu_age(const void* p1, const void* p2)
{
    return ((stu*)p1)->age - ((stu*)p2)->age;
}
 

strcmp函数:strcmp是C语言标准库中的一个函数,用于比较两个字符串。它会逐个字符比较两个字符串,直到遇到不同的字符或者其中一个字符串结束为止。比较规则是按照字符的ASCII码值进行比较。函数的返回值为整数,如果字符串相等则返回0,如果第一个字符串小于第二个字符串则返回负值,如果第一个字符串大于第二个字符串则返回正值。

比较字符串大小。与长短无关,比较字母的大小例如avc与abcdef,这里avc就大于abcdef,因为第二位v大于b。

stu arr[] = { {"zhangsan",29},{"lisi", 30}, {"wanwu", 28} };
printf("%d", strcmp(arr[0].name, arr[1].name));

运行出的值为1,又Z的ascll值大于L。

可见选择结构体中的成员不同,结果也不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1481642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报错问题解决django.db.utils.OperationalError: (1049, “Unknown database ‘ mxshop‘“)

开发环境:ubuntu22.04 pycharm 功能:django连接使用mysql数据库,各项配置看似正常 报错: django.db.utils.OperationalError: (1049, "Unknown database mxshop") 分析检查原因: Setting的配置文件内&…

【JavaEE】_HttpServletResponse类

目录 1. 核心方法 2. 关于setStatus(400)与sendError 2.1 setStatus(400) 2.2 sendError 3. setHeader方法 4. 构造重定向响应 4.1 使用setHeader和setStatus实现重定向 4.2 使用sendRedirect实现重定向 本专栏已有文章介绍HttpServlet和HttpServletRequest类&#…

使用Python语言实现一个基于动态数组的序列队列

一、动态数组的实现 首先,我们需要创建一个DynamicArray类,该类将管理我们的动态数组。 动态数组能够动态地调整其大小,以容纳更多的元素。 目录 一、动态数组的实现 代码示例: 二、序列队列的实现 接下来,我…

【rust】10 project、crate、mod、pub、use、项目目录层级组织、概念和实战

文章目录 一、项目目录层级组织概念1.1 cargo new 创建同名 的 Project 和 crate1.2 多 crate 的 package1.3 mod 模块1.3.1 创建嵌套 mod1.3.2 mod 树1.3.3 用路径引用 mod1.3.3.1 使用绝对还是相对? 1.3.4 代码可见性1.3.4.1 pub 关键字1.3.4.2 用 super 引用 mod1.3.4.3 用…

Mathtype安装时word启动显示“文件未找到:MathPage.WLL”

背景 由于老板布置的临时工作,需要安装Mathtype,但尝试了3个不同的版本后(每次都卸载干净了),均未能成功安装,出现的报错3个版本各不相同: ①解压安装过程中失败(这个版本不再尝试…

数据可视化原理-腾讯-热力图

在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…

MySQL、高级SQL操作

学习数据库的目的 岗位需求、大数据时代、被迫需求,存数据 数据库是所有软件体系中最核心的存在 数据库 DB DB dataBase 数据仓库,软件,安装在window、linux、mac上,可以存储大量数据,500w 作用:存储数据…

docker的数据卷和docker的自定义镜像

docker的数据卷和docker的自定义镜像 1.docker的数据卷1.1创建 docker volume create 数据卷名称1.2 查看数据卷docker volume ls1.3 删除一个volume 2.将宿主机的目录与容器的目录进行挂载,实现数据共享2.1数据卷相互共享 3.自定义镜像3.1编辑Dockerfiile文件 vim …

位运算第二弹

力扣191.位1的个数 public class Solution {// you need to treat n as an unsigned valuepublic int hammingWeight(int n) {int ret0;while(n!0){n(n&n-1);ret;}return ret;} } 推荐是自己去手动推一下,深刻理解一下,什么叫做最右侧的1。 力扣338.…

3694-51-7,3,5-Dinitro-1,2-phenylenediamine,合成其他化合物的重要中间体

您好,欢迎来到新研之家 文章关键词:3694-51-7,3,5-Dinitro-1,2-phenylenediamine,3,5-二硝基-1,2-苯二胺;3,5-二硝基苯-1,2-二胺 一、基本信息 【产品简介】:3,5-Dinitro-1,2-phenylenediamine, with the molecular…

MySql出现无法正常启动(0x000007b)的快速解决

目录 1.背景介绍 2.解决方案 1.背景介绍 昨天在清理电脑内存空间的时候,不小心将一些重要的系统组件删除,导致无法正常启动mysql,一开始是提示经过msvcp120.dll,于是找到下载dll的网站将组件补充进system,但随后又提…

【办公类-25-01】20240304 UIBOT上传 ”班级主页-信息窗“

一、背景需求: 本学期制作了 “信息窗主题说明”合并A4内容 【办公类-22-07】周计划系列(3-1)“信息窗主题知识(提取)” (2024年调整版本)-CSDN博客文章浏览阅读797次,点赞7次&…

渗压计使用中的常见问题及其解决方案

渗压计作为一种用于测量土壤或岩石中孔隙水压力的重要工具,在地质工程和水文学领域具有广泛的应用。然而,在实际使用过程中,渗压计可能会遇到多种常见问题,这些问题不仅影响测量精度,还可能对设备本身造成损害。本文将…

【力扣】207.课程表(图)

依旧还是有关于图的题目,这次不一样的点在于题目并没有明确的给出他是图的题目的形式,而是说让你根据其题目意思来进行操作。 首先,就是搞清楚题目的意思。假设你想学习A课程,那就是必须先学习B课程,但是这里给出的例…

消息队列+更新DB极易引发的DB并发修改bug

背景 我们在生产系统中和其他系统进行交互时一般都会通过消息队列来解耦生产者和消费者,然后通过每个使用方消费消息队列的消息的方式来完成消息的消费,并且一般来说我们消费消息后极有可能会操作DB,不过这种方式如果处理不够仔细&#xff0…

Linux——进程控制(一)进程的创建与退出

目录 一、进程创建 1.写时拷贝 2.创建多个进程 二、进程终止 1.main函数的返回值 2.bash中的$? 3.自定义退出码 4.C语言的错误码 5.错误码与退出码的区别 6.代码异常终止 7.exit函数 8.总结 一、进程创建 在之前,我们学过linux中的非常重要的函数——…

全网爆火的 MBTI 测试,是隐藏的割韭菜工具?

小伙伴们,谁能想到,作为一名冲浪老手,果子在网上又被骗了。 事情是这样的,前几天,我刷微博,看到一个推荐,大概如下图,是一个 MBTI 人格测试。 MBTI 测试,果子早就做过了…

【前端素材】推荐优质在线电影院商城电商网页Hyper平台模板(附源码)

一、需求分析 1、系统定义 在线电影商城是指一个通过互联网提供电影服务的平台,用户可以在该平台上浏览电影资源、租借或购买电影,以及观看在线影片。 2、功能需求 在线电影商城是指一个通过互联网提供电影服务的平台,用户可以在该平台上…

Windows Docker 部署 Redis

部署 Redis 打开 Docker Desktop,切换到 Linux 内核。然后在 PowerShell 执行下面命令,即可启动一个 redis 服务。这里安装的是 7.2.4 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。 docker run -d --nam…

2.25_模式识别大作业的三种方法

filename sys.argv[1] df pd.read_csv(filename,index_col["ID"]) ax df.plot() ax.set_xlabel("Data_ID") ax.set_ylabel("load_value") plt.show() 这段代码是用来读取一个CSV文件,并将文件中的数据绘制成一个简单的折线图。 在…