Сортировка двухмерного динамического массива строк в алфавитном порядке СИ

Пытаюсь отсортировать массив в алфавитном порядке. Массив будет состоять из имени и фамилии. Пробовал заполнять массив с помощью gets() , была проблема с выводом строк. Потом решил попробовать считать scanf()-ом, тут столкнулся c проблемкой, что это две отдельные строки, и как их отсортировать, даже представить не могу. Можно ли как-то привязать первую строку ко второй, или объединить их в одну? Или какой-то особый метод сортировки подскажите. Вот код:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<malloc.h>
#define size 50

struct student {
    char meno1[size];
    char meno2[size];
};

int main() {
    struct student natural;
    struct student perepis[size];
    int cislo;
    int check = 0;
    scanf("%d", &cislo);
    getchar();
    while (1) {
        int n;
        n = scanf("%s %s", perepis[check].meno1[check], perepis[check].meno2[check]);
        if (n == EOF) break;
        check++;
    }
    int w;
    char* minimum;
    for (int a = 0; a < check; a++) {
        minimum = perepis[a].meno1;
        w = a;
        for (int b = a + 1; b < check; b++) {
            if (strcmp(minimum, perepis[b].meno1) > 0) {
                minimum = perepis[a].meno1;
                w = b;
            }
        }
        natural = perepis[a];
        perepis[a] = perepis[w];
        perepis[w] = natural;
    }
    puts("Prijati studenti:");
    for (int g = 0; g < check; g++) {
        printf("%s %s\n", perepis[g].meno1[g], perepis[g].meno2[g]);
    }
    return 0;
}

Помогите пожалуйста, всем заранее спасибо! :)


Ответы (0 шт):