gpt4 book ai didi

c - Alphasort 的功能

转载 作者:行者123 更新时间:2023-11-30 14:59:55 31 4
gpt4 key购买 nike

我正在为我的一个 C 程序使用 scandir() 函数。在 scandir() 中,我要求它对我的目录进行 alpha 排序。然而,当我有诸如 alpha、bob 之类的文件时,它们会被放置在 DARK 或 Decomp.txt 等文件下。我认为这是因为 ascii 值的工作方式。但是有没有办法让我的顺序是:alpha,bob,DARK,decomp.txt 而不是 DARK,Decomp.txt,alpha,bob。

因为本质上我应该对 tree unix 命令进行建模,并需要它以这种方式排序。

下面的代码仅显示我的打印方式。

void listdir(const char *name, int level, int hidden, int access)
{
DIR *dir;
struct dirent **entry;
int n = 2;
int num;
char path[1024];
int len;
int count = 0;
if (!(dir = opendir(name)))
{
printf("%s [error opening dir]\n", name);
return;
}
num = scandir(name,&entry,NULL,alphasort);
if(num<0)
{
perror("scandir");
}
while(n<num){
/* Bunch of formatting to print files/directory */
/* Pseudocode */
/* if( it is a directory)
print current directory
recursive call on function

else
print current file */
n++;
}

closedir(dir);

}

最佳答案

类似于:

#include <strings.h>

int alphasort_case_insensitive(const struct dirent ** a, const struct dirent **b) {
return(strcasecmp((*(const struct dirent **)dirent1)->d_name,
(*(const struct dirent **)dirent2)->d_name));
}

关于c - Alphasort 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42404729/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com