Если у меня есть строка, есть ли встроенная функция для сортировки символов или мне придется писать свои собственные?
например:
string word = "dabc";
Я бы хотел изменить его так, чтобы:
string sortedWord = "abcd";
Может быть, использование char - лучший вариант? Как бы я сделал это на C ++?
std::sort
?Ответы:
Существует алгоритм сортировки в стандартной библиотеке, в заголовке
<algorithm>
. Он сортируется по месту, поэтому, если вы сделаете следующее, исходное слово будет отсортировано.std::sort(word.begin(), word.end());
Если вы не хотите потерять оригинал, сначала сделайте копию.
std::string sortedWord = word; std::sort(sortedWord.begin(), sortedWord.end());
источник
std::sort
по умолчанию сортирует в алфавитном порядке. Предположив , что это небольшая опечатка , и вы хотите де биговки заказ, используйте версию ,std::sort
которая принимает вCompare
качестве третьего аргумента и поставитьstd::greater
вместо стандартногоstd::less
.std::string
используетchar
тип по умолчанию, например,std::sort(sortedWord.begin(), sortedWord.end(), std::greater<char>());
- это даст результат «dcba» в исходном вопросе, а не «abcd».std::sort(str.begin(), str.end());
Смотрите здесь
источник
Вы должны включить
sort
функцию, которая находится вalgorithm
файле заголовка, который является стандартной библиотекой шаблонов. в C ++.Использование : std :: sort (str.begin (), str.end ());
#include <iostream> #include <algorithm> // this header is required for std::sort to work int main() { std::string s = "dacb"; std::sort(s.begin(), s.end()); std::cout << s << std::endl; return 0; }
ВЫВОД:
источник
Вы можете использовать функцию sort () . sort () существует в файле заголовка алгоритма
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); string str = "sharlock"; sort(str.begin(), str.end()); cout<<str<<endl; return 0; }
Вывод:
источник