用strcmp对字符串排序c语言
时间: 2023-11-16 09:08:28 浏览: 86
strcmp是用来比较两个字符串的函数,并不是用来排序的。如果要对一组字符串进行排序,可以使用C语言中的qsort函数。下面是一个例子,假设有一个字符串数组strArr,其中包含n个字符串,可以按照字典序对它进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
int i, n;
char strArr[100][100];
printf("Enter the number of strings: ");
scanf("%d", &n);
printf("Enter the strings:\n");
for (i = 0; i < n; i++) {
scanf("%s", strArr[i]);
}
qsort(strArr, n, sizeof(char *), cmp);
printf("The sorted strings are:\n");
for (i = 0; i < n; i++) {
printf("%s\n", strArr[i]);
}
return 0;
}
```
在这个例子中,我们定义了一个名为cmp的比较函数,其作用是比较两个字符串的大小。然后使用qsort函数对字符串数组进行排序,最后输出排序后的结果。注意,qsort函数的第三个参数是每个元素的大小,这里使用sizeof(char *)表示每个元素是一个指向char类型的指针。
阅读全文