c 语言pta 字符串排序
时间: 2024-12-02 07:12:23 浏览: 226
在C语言中,如果你想对字符串数组按照字典序进行排序,可以使用标准库函数`qsort()`,它是一个通用的排序函数,适用于任意类型的数组。对于字符串数组,你需要提供一个比较函数作为第三个参数,这个函数用于确定两个字符串的顺序。
以下是一个简单的例子,展示了如何对字符串数组按字母升序排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义比较函数
int compare(const void *a, const void *b) {
char *str1 = (char *) a;
char *str2 = (char *) b;
return strcmp(str1, str2); // 使用strcmp()比较字符串
}
void sort_strings(char *strings[], int count) {
qsort(strings, count, sizeof(char*), compare);
}
int main() {
char strings[] = {"banana", "apple", "cherry", "date"};
int string_count = sizeof(strings) / sizeof(strings[0]);
printf("Before sorting:\n");
for (int i = 0; i < string_count; i++) {
printf("%s ", strings[i]);
}
sort_strings(strings, string_count);
printf("\nAfter sorting:\n");
for (int i = 0; i < string_count; i++) {
printf("%s ", strings[i]);
}
return 0;
}
```
在这个示例中,`compare`函数通过`strcmp()`比较两个字符串,`qsort`则会根据这个比较函数对数组进行排序。运行程序后,你会看到字符串已经按字母顺序排列了。
阅读全文