c语言中如何将字符串进行排序
时间: 2023-10-16 20:02:49 浏览: 241
在C语言中,可以使用库函数中的"qsort"函数对字符串进行排序。该函数属于stdlib.h头文件中的函数,其原型如下:
```
void qsort(void* base, size_t nmemb, size_t size, int (*compar)(const void*, const void*));
```
其中,参数说明如下:
- base:指向要排序的字符串数组的指针。
- nmemb:数组中元素的个数。
- size:每个元素的大小(通常为sizeof(char))。
- compar:指向比较函数的指针,用于定义字符串的比较规则。
比较函数的原型如下:
```
int compare(const void* a, const void* b);
```
其中,参数a和b分别是指向字符串的指针,比较函数需要返回一个整数值,表示a和b的关系:
- 若a小于b,则返回一个负整数。
- 若a等于b,则返回0。
- 若a大于b,则返回一个正整数。
下面是一个示例代码,演示如何使用qsort函数对字符串进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void* a, const void* b) {
return strcmp(*(const char**)a, *(const char**)b);
}
int main() {
char* strings[] = { "bbb", "ddd", "aaa", "ccc" };
int numStrings = sizeof(strings) / sizeof(strings[0]);
qsort(strings, numStrings, sizeof(strings[0]), compare);
for (int i = 0; i < numStrings; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
以上代码中,我们定义了一个字符串数组strings并初始化了几个字符串。然后,我们使用qsort函数对该数组进行排序,并在主函数中打印出排序后的结果。输出结果为:
```
aaa
bbb
ccc
ddd
```
这是按照字母顺序对字符串进行了升序排序后的结果。
阅读全文