Сортировка файлов в каталоге с учетом регистра в C

У меня есть фрагмент кода C: я использовал dirent.h и использовал opendir и readdir для чтения файлов. Я делаю дубликат команды ls с использованием кода c, для этого файл должен быть в порядке возрастания, а также учитывать регистр.

#include <stdio.h>
#include <dirent.h>

int main(void)
{
    DIR *d;
    struct dirent *dir;
    d = opendir(".");
    printf("d: %d \n",d);
    if (d)
    {
        while ((dir = readdir(d)) != NULL)
        {
            printf("\n %s \n", dir->d_name);
        }
        closedir(d);
    }
    else
    {
        printf("soory");
    }

    return (0);
}

Я получил результат как

krishna-R
stat.c
temp
Bing
TempFolder
button

Я хочу

Bing
button
krishna-R
stat.c
TempFolder
temp

person Krishna Acharya    schedule 13.01.2021    source источник
comment
Затем соберите имена файлов и пропустите их через функцию сортировки.   -  person Eugene Sh.    schedule 13.01.2021
comment
Я думаю, вы перепутали сортировку с учетом регистра и отсутствие сортировки вообще. Вы делаете последнее. Если вы хотите, чтобы список был отсортирован - тогда вам нужно отсортировать его вручную!   -  person paulsm4    schedule 13.01.2021
comment
Вы можете создать массив struct dirent, а затем передать массив в qsort. Вам нужно будет написать функцию сравнения для сравнения двух dirents. Это может помочь: stackoverflow.com/a/55230286/4903336   -  person Dex    schedule 13.01.2021