问题描述
我需要按字母数字降序对文件名进行排序。我在 C 中编写了以下代码,但它仅按字母顺序排序,我猜是因为文件 A2 在 A11 之前被读取。我正在使用带有 alphasort 的 scandir
感谢您的帮助
struct dirent **vl_lecture = NULL;
DIR *vl_repertoire = NULL;
//I open the directory with opendir
vl_repertoire = opendir(vg_alias_rep_fichier.arr);
...//code
int n = scandir(vg_alias_rep_fichier.arr,&vl_lecture,NULL,alphasort);
// I use while to perform some operations with file names ...
解决方法
fmap phi . n = n . fmap phi
按降序对字符串进行排序。这就是为什么你看到 A2 出现在 A11 之前。提供你自己的函数
alphasort