对目录中的文件进行排序,包括 C 中的区分大小写

Sorting files in the directory including case sensitivity in C

我有一个 C 代码片段: 我已经使用 dirent.h 并使用 opendir 和 readdir 来读取文件 我正在使用 c 代码执行 ls 命令复制, 因为文件应该是升序的,并且还包括区分大小写。

#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
#include <stdio.h>
#include <dirent.h>
#include <string.h>
int main(void)
{
    char array[50][30]={};
    int i=0, j=0, k=0;
    DIR *d;
    struct dirent *dir;
    d = opendir(".");
    printf("d: %d \n",d);    
    if (d)
    {
        while ((dir = readdir(d)) != NULL)
        {
            strcpy(array[i], dir->d_name);
            i++;
        }
        for (k = 0; k <= i; k++)    /* Sorting files alphabetically */
            for (j = k + 1; j <= i; j++)
            {
                if (strcasecmp(array[k], array[j]) > 0)
                {
                    strcpy(tmp, array[k]);
                    strcpy(array[k], array[j]);
                    strcpy(array[j], tmp);
                }
            }
        closedir(d);
      }
      for (int a = 0 ; a < i ; a++)
      {
          printf("%s \n",array[a]);
      }
      return 0;
}