首页 > 代码库 > c/c++ qsort 函数 结构体简单使用(1)

c/c++ qsort 函数 结构体简单使用(1)

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 
 5 typedef struct student {
 6     char *name;
 7 };
 8 
 9 void scan(student stu[], int &n){
10     char str[1024];
11     scanf("%d", &n);
12     for(int i = 0; i < n; ++i){
13         scanf("%s", str);
14         int len = strlen(str);
15         stu[i].name = (char *)malloc((len + 1) * sizeof(char));
16         strcpy(stu[i].name, str);
17     }
18 }
19 
20 void print(student stu[], int n){
21     printf("%d\n", n);
22     for(int i = 0; i < n; ++i){
23         printf("%s ", stu[i].name);
24     }
25     puts("");
26 }
27 //按字典序 排序
28 int comp(const void *a, const void *b){
29     student *numa = (student *)a, *numb = (student *)b;
30     return strcmp(numa->name, numb->name);
31 }
32 
33 int main(){
34     int n;
35     student stu[10];
36     scan(stu, n);
37 
38     print(stu, n);
39 
40     qsort(stu, n, sizeof(student), comp);
41 
42     print(stu, n);
43     return 0;
44 }
45 /*
46 10
47 9只小昆虫
48 8只小昆虫
49 7只小昆虫
50 6只小昆虫
51 5只小昆虫
52 4只小昆虫
53 3只小昆虫
54 2只小昆虫
55 1只小昆虫
56 0只小昆虫
57 
58 */

 

c/c++ qsort 函数 结构体简单使用(1)