c语言字符串按字典顺序排序
时间: 2023-07-26 18:38:25 浏览: 342
要对一组字符串按照字典顺序进行排序,可以使用C标准库中的qsort函数,并编写一个自定义的比较函数。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100 // 最大字符串长度
#define MAX_NUM 100 // 最大字符串数量
int cmp(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main(void) {
char strs[MAX_NUM][MAX_LEN]; // 存储字符串的二维字符数组
int n; // 字符串数量
// 读入字符串
printf("请输入字符串数量:");
scanf("%d", &n);
printf("请输入%d个字符串(每行一个):\n", n);
for (int i = 0; i < n; i++) {
scanf("%s", strs[i]);
}
// 排序
qsort(strs, n, sizeof(strs[0]), cmp);
// 输出结果
printf("按字典顺序排序后的结果为:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", strs[i]);
}
return 0;
}
```
在上述程序中,我们定义了一个自定义的比较函数cmp,它接受两个指向字符串的指针,使用strcmp函数进行比较并返回比较结果。然后在主函数中,我们读入字符串、调用qsort函数进行排序、并输出结果。
阅读全文