c语言 n个字符串排序
时间: 2023-10-23 22:17:24 浏览: 100
字符串排序算法比较(C语言)
以下是使用C语言对n个字符串进行排序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100 // 定义字符串的最大长度
#define MAX_NUM 100 // 定义最大的字符串数量
// 比较函数,用于排序
int compare(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
char strings[MAX_NUM][MAX_LEN]; // 存储所有的字符串
char *ptrs[MAX_NUM]; // 存储所有字符串的指针
int n; // 字符串数量
// 输入字符串数量和所有的字符串
printf("请输入字符串的数量(不超过%d个):", MAX_NUM);
scanf("%d", &n);
printf("请输入%d个字符串,每个字符串长度不超过%d个字符:\n", n, MAX_LEN - 1);
for (int i = 0; i < n; i++) {
scanf("%s", strings[i]);
ptrs[i] = strings[i]; // 将字符串的指针存储到ptrs数组中
}
// 对所有字符串进行排序
qsort(ptrs, n, sizeof(char *), compare);
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", ptrs[i]);
}
return 0;
}
```
该代码中使用了标准库函数`qsort()`进行排序,`qsort()`函数的第一个参数为待排序数组的起始地址,第二个参数为数组中元素的数量,第三个参数为每个元素的大小(字节数),第四个参数为比较函数,用于比较两个元素的大小关系。在本例中,比较函数`compare()`使用了`strcmp()`函数进行字符串比较。
阅读全文