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

使用qsort函数对字符串中的星期名称进行排序

星期名排序

使用qsort函数对字符串中的星期名称进行排序,且输入的星期不重复,将输入字符串按逗号分割,然后根据周一到周日的顺序排序,最后将排序后的字符串重新组合回原字符串中,代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 定义星期名称的顺序
const char *weekdays[] = {"Monday", "Tuesday", "Wednesday", "Thursday","Friday", "Saturday", "Sunday"
};//全局字符串,可进行传参
char current_weekdays[100] = "Wednesday,Tuesday,Friday,Sunday,Saturday,Monday";// 比较函数,用于确定两个星期名称的顺序
int weekday_compare(const void *a, const void *b) {// 获取待比较的字符串指针const char *str1 = *(const char **)a;const char *str2 = *(const char **)b;int index1 = -1, index2 = -1;// 查找第一个字符串在weekdays中的索引for (int i = 0; i < 7; i++) {if (strcmp(str1, weekdays[i]) == 0) {index1 = i;break; // 找到后立即退出}}// 查找第二个字符串在weekdays中的索引for (int i = 0; i < 7; i++) {if (strcmp(str2, weekdays[i]) == 0) {index2 = i;break; // 找到后立即退出}}// 按索引顺序排序return index1 - index2;
}void qosort_weekdays(void) {char *tokens[7]; // 存储分割后的字符串指针int count = 0;   // 实际分割的字符串数量// 使用strtok分割字符串char *token = strtok(current_weekdays, ",");while (token != NULL && count < 7) {tokens[count++] = token;token = strtok(NULL, ",");}// 使用qsort排序qsort(tokens, count, sizeof(char *), weekday_compare);// 重新组合排序后的字符串char temp[100] = "";for (int i = 0; i < count; i++) {strcat(temp, tokens[i]);if (i < count - 1) {strcat(temp, ",");}}// 将结果复制strcpy(current_weekdays, temp);
}int main() {qosort_weekdays();printf("Sorted: %s\n", current_weekdays);   // 输出结果return 0;
}

输出结果如下:
在这里插入图片描述

http://www.xdnf.cn/news/12450.html

相关文章:

  • 30.【新型数据架构】-区块链数据架构
  • Java并发编程实战 Day 13:Fork/Join框架与并行计算
  • 如何解决 远程 合并冲突
  • Docker容器运行一段时间后GPU无法使用报错Failed to initialize NVML: Unknown Error
  • AFNetworking `setSecurityPolicy:` 方法源码解析及最佳实践
  • 以太网原理图设计和PCB设计deepseek
  • 三十三、面向对象底层逻辑-SpringMVC九大组件之HandlerExceptionResolver接口设计
  • 张量的理解
  • Python如何去除图片干扰
  • pp-ocrv5的关键改进PPHGNetV2_B4
  • java 异步
  • 2025-适用于Windows11Version 24H2的05累积更新,适合基于x64的系统(KB5058411) 安装错误-0x800f0831
  • 第四章 信息系统管理-4.1 管理方法
  • 正式上线!在 Sui 主网上使用 Nautilus 构建防篡改预言机
  • MCP是什么
  • STM32实战:数字音频播放器开发指南
  • DFT测试之TAP/SIB/TDR
  • 29.【新型数据架构】-边缘计算数据架构
  • Linux top 命令 的使用总结
  • Leetcode 1645. Hopper 公司查询 II
  • python字符串方法
  • NY118NY120美光固态闪存NY124NY129
  • 掌握子网划分:优化IP分配与管理
  • Java建造者模式(Builder Pattern)详解与实践
  • 【PhysUnits】16.1 完善Var 结构体及其运算(variable.rs)
  • Lrc歌词分析
  • 〈软件安装管家软件目录〉▷Windows系统版
  • JAVA理论-JAVA基础知识
  • 结构体和指针1
  • 一文学会《使用Auto CAD2020绘制Allegro PCB板框》