正在对字符进行排序**

Sorting a char**

本文关键字:排序 字符      更新时间:2023-10-16

所以我正在为一个项目创建一个索引器,我们必须使用 char** 来存储文件中的单词。我正在尝试对数组内的单词进行排序。这是我到目前为止尝试过的:

void Word::arrangeWords(char **&words)
{
char **temp=new char*[getSize()];
temp[getSize()-1]=words[getSize()-1];
for (int i=getSize()-1;i>0;i--)
{
    comp=strcmp(temp[i], temp[i-1]);
    if (comp<0)
    {
        temp[i]=words[i-1];
        temp[i-1]=words[i];
    }
    else
    {
        temp[i]=words[i];
    }
}
delete [] words;
words=temp;
}

这最终不起作用,我有点明白为什么。排序更简单的方法吗?提前致谢

C++ 中对 0 结尾的字符串进行排序的最简单方法:

#include <cstring>
#include <algorithm>
void sortcstrings(const char** arr, size_t n) {
    std::sort(arr, arr+n, [](const char* a, const char* b){
        return std::strcmp(a, b)<0;});
}

尽管使用std::string(以及用于存储它们的std::vector)可以使一切正常工作,并且不那么容易出错。