排序C++字符串的字符

gpr*_*ime 70 c++ sorting string

如果我有一个字符串是有内置函数来排序字符或我必须自己编写?

例如:

string word = "dabc";
Run Code Online (Sandbox Code Playgroud)

我想改变它,以便:

string sortedWord = "abcd";
Run Code Online (Sandbox Code Playgroud)

也许使用char是更好的选择?我将如何在C++中执行此操作?

R. *_*des 131

标题库中的标题库中有一个排序算法<algorithm>.它会在适当位置进行排序,因此如果您执行以下操作,您的原始单词将被排序.

std::sort(word.begin(), word.end());
Run Code Online (Sandbox Code Playgroud)

如果您不想丢失原件,请先复印一份.

std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
Run Code Online (Sandbox Code Playgroud)

  • @madhuspot 或使用 std::reverse (3认同)
  • @madhuspot`std :: sort`默认按字母顺序排序.假设这是一个小错字并且你想要**de**creasing order,使用`std :: sort`的版本,它将`Compare`作为它的第三个参数并提供`std :: greater`而不是默认的`std :: less`.`std :: string`默认使用`char`类型,例如`std :: sort(sortedWord.begin(),sortedWord.end(),std :: greater <char>());` - 这会给出原始问题中"dcba"的结果而不是"abcd". (2认同)

dre*_*lax 13

std::sort(str.begin(), str.end());
Run Code Online (Sandbox Code Playgroud)

看到这里

  • 这是最好的方法...如果字符串使用单字节编码.否则,您将把字符拆分为组件字节. (10认同)