在结构体中创建结构体,然后进行qsort排序字符串数组
typedef struct student {
char arr1[10];
}student;
typedef struct ps {
student arr2[10];
}ps;
int compare(const void* str1, const void* str2) {
ps* sp = (ps*)str1;
ps* sp2 = (ps*)str2;
return strcmp(sp->arr2->arr1, sp2->arr2->arr1);
}
int main() {
ps s1 = { 0 };
memcpy(s1.arr2,"basf3w", 7);//初始化
memcpy(s1.arr2+1,"dsfsda", 7);
memcpy(s1.arr2+2,"casfxa", 7);
memcpy(s1.arr2+3,"zasfds", 7);
memcpy(s1.arr2+4,"asrqws", 7);
qsort(s1.arr2, 5, sizeof(s1.arr2[0]), compare);
for (int i = 0; i < 5; i++) {
printf("%s\n", s1.arr2[i]);
}
return 0;
}
运行结果