输入一批字符串,最多 100 个,每个字符串长度小于 80,将字符串按从小到大的顺序排序并且输出。用c语言解答
时间: 2024-03-01 20:55:54 浏览: 134
现在有一个字符串“90,56,45,38,79,85”,按照从小到大排序——字符串排序
以下是用 C 语言解答该问题的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAXN 100
#define MAXLEN 80
char str[MAXN][MAXLEN + 1];
int cmp(const void *a, const void *b) {
return strcmp((char *)a, (char *)b);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", str[i]);
}
qsort(str, n, sizeof(str[0]), cmp);
for (int i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
解释:
1. 定义了常量 `MAXN` 和 `MAXLEN` 分别表示字符串数组的最大个数和每个字符串的最大长度。
2. 定义了字符串数组 `str`,用于存储输入的字符串。
3. 定义了函数 `cmp` 用于字符串比较,`qsort` 函数需要用到。
4. 在 `main` 函数中,首先读入整数 `n` 表示字符串的个数,然后依次读入每个字符串并存储到 `str` 数组中。
5. 调用 `qsort` 函数对 `str` 数组进行排序,排序函数为 `cmp`。
6. 最后依次输出排序后的字符串数组中的每个字符串。
注意:该代码中使用了 C 标准库函数 `qsort` 进行排序,但是它是一个不稳定的排序算法,如果需要稳定的排序算法,可以使用归并排序等其他算法。
阅读全文