所以我试图在一个名为 conj_str 的字符串数组中进行二进制搜索,要做的是我必须对其进行排序,而我试图使用 qsort 的问题是比较函数不起作用并且它没有排序任何东西。
程序:
#include<stdlib.h>
#include<stdio.h>
#include <string.h>
#define MAX_CHARS 1024
#define MAX_SIZE 10000
int compare (const void *a, const void *b)
{
const char *key = a;
const char * const *arg = b;
return strcmp(key, *arg);
}
int main()
{
int i;
char conj_str[MAX_SIZE][MAX_CHARS];
size_t len = sizeof(conj_str)/sizeof(const char *);
strcpy(conj_str[0],"fcb");
strcpy(conj_str[1],"bvb");
strcpy(conj_str[2],"slb");
strcpy(conj_str[3],"fcp");
strcpy(conj_str[4],"rma");
qsort (conj_str, len, sizeof (const char *), compare);
for (i = 0; i < 5; i++) {
printf ("%d: %s\n", i, conj_str[i]);
}
}