字符串排序

问题概要

给定 n 个字符串,请对 n 个字符串按照字典序排列

对应牛客网HJ14 字符串排序

思路分析

该问题思路相对来说比较简单:

  1. 使用数组接收用户输入的字符串
  2. 使用qsort方法对数组进行排序
  3. 输出排序后的数组

代码实现

c 复制代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_STRING_LENGTH 101 // 字符串最大长度 

// 字符串比较函数
int string_compare(const void *a, const void *b) {
	return strcmp(*(const char **)a, *(const char **)b);
} 

int main() {
	int num = 0, i;
	scanf("%d", &num);
	
	// 动态分配一个字符串指针数组
	char **strings = (char **)malloc(num * sizeof(char *));
	for (i = 0; i < num; i++) {
		strings[i] = (char *)malloc(MAX_STRING_LENGTH * sizeof(char));
		scanf("%s", strings[i]);
	}
	
	// 使用qsort进行排序
	qsort(strings, num, sizeof(char *), string_compare);
	
	// 打印排序后的字符串
	for (i = 0; i < num; i++) {
		printf("%s\n", strings[i]);
		free(strings[i]);// 释放每个字符串的内存 
	}
	free(strings); // 释放字符串数组的内存 
	
	return 0;
}

因为该问题相对来说比较简单,所以也不在此过多赘述了,希望这篇文章,能起到些微参考作用。

感谢阅读,也祝大家开心!

相关推荐
小xin过拟合3 小时前
day20 二叉树part7
开发语言·数据结构·c++·笔记·算法
啟明起鸣3 小时前
【数据结构】B 树——高度近似可”独木成林“的榕树——详细解说与其 C 代码实现
c语言·开发语言·数据结构
lxmyzzs4 小时前
【图像算法 - 23】工业应用:基于深度学习YOLO12与OpenCV的仪器仪表智能识别系统
人工智能·深度学习·opencv·算法·计算机视觉·图像算法·仪器仪表识别
Learn Beyond Limits4 小时前
Multi-output Classification and Multi-label Classification|多输出分类和多标签分类
人工智能·深度学习·神经网络·算法·机器学习·分类·吴恩达
张较瘦_4 小时前
[论文阅读] 软件工程 | GPS算法:用“路径摘要”当向导,软件模型检测从此告别“瞎找bug”
论文阅读·算法·bug
XH华4 小时前
C语言第十三章自定义类型:联合和枚举
c语言·开发语言
2401_858286115 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
草莓熊Lotso5 小时前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day13
c语言·开发语言·刷题·强化训练
张同学的IT技术日记5 小时前
【奇妙的数据结构世界】用图像和代码对队列的使用进行透彻学习 | C++
算法
极客BIM工作室5 小时前
强化学习算法分类与介绍(含权重更新公式)
算法·分类·数据挖掘