对目录中的文件进行排序,包括 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;
}
我有一个 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;
}