Сортировка структуры по алфавиту - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть динамический массив структур, в нем лежат имя, фамилия, отчество и номер телефона. Нужно сделать сортировку по имени ( по алфавиту), используя qsort. Я не понимаю что мне писать в функцию compare.
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#pragma pack(push,1)
struct people
{
    char surname[70];
    char name[70];
    char otchestvo[70];
    int nomer;
};
#pragma pop
compare ()
{
    
}
int main(void)
{ 
    int d =0,c=1, k=0,x=0,n_u =1,n_a=0;
    FILE *in = fopen("i:/data.txt","r");
    if (in==NULL )
    {
        printf ("No file");
        return 1;
    }   
    people* mas = (people*)malloc(sizeof(people)*1);
    d = fscanf(in, "%s %s %s %i", mas[k].name, mas[k].surname, mas[k].otchestvo, &mas[k].nomer);
    while (d==4)
    {
        printf("%s %s %s %i\n", mas[x].name, mas[x].surname, mas[x].otchestvo,mas[x].nomer);
        x++;
        c++;
        if (n_u>=n_a)
        {
            if (people *mas2 = (people*)realloc(mas,sizeof(people)*2))
            {
                mas = mas2;
                n_a *=2;
            }
            else if (people *mas2 = (people*)realloc(mas,sizeof(people)+1))
            {
                mas = mas2;
                n_a++;
            }
        }
        d = fscanf(in,"%s %s %s %i", mas[x].name, mas[x].surname, mas[x].otchestvo,&mas[x].nomer);
    }
    qsort(mas,10,sizeof(char),compare);
    fclose(in);
    return 0;
}

Решение задачи: «Сортировка структуры по алфавиту»

textual
Листинг программы
(int(*)(const void*,const void*)) strcmp

Объяснение кода листинга программы

В представленном коде выполняется сортировка структур по алфавиту. В функции compare используется функция сравнения strcmp, которая сравнивает строки. Эта функция возвращает отрицательное значение, если первая строка меньше второй, положительное значение, если первая строка больше второй, и ноль, если строки равны. Функция compare вызывается в функции qsort в качестве аргумента сравнения. Функция qsort сортирует массив структур array на основе функции сравнения compare.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы