Написать сортировку по алфавиту массива структур - C (СИ)
Формулировка задачи:
Доброй ночи. Не получается написать сортировку по алфавиту массива структур, заданного вот так:
Отсортировать нужно по начальной большой букве массива name.
Заранее большое спасибо.
struct book { char name[15]; char surname[15]; char tel[15]; int age; } mybook[10];
Решение задачи: «Написать сортировку по алфавиту массива структур»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { const char * text; int num; } pair_t; int cmp(const void * a, const void * b){ return strcmp(((pair_t*)a)->text, ((pair_t*)b)->text); } void dump(pair_t * p, size_t size){ while ( size-- ){ printf("%d\t%s\n", p->num, p->text); ++p; } } int main(void){ pair_t pairs[] = { { .text = "bla bla bla", .num = 1 }, { .text = "very long string", .num = 2 }, { .text = "abc", .num = 3 } }; dump(pairs, sizeof(pairs) / sizeof(*pairs)); qsort(pairs, sizeof(pairs) / sizeof(*pairs), sizeof(*pairs), cmp); printf("\n"); dump(pairs, sizeof(pairs) / sizeof(*pairs)); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д