Сортировка символов строки С++
Если у меня есть строка, есть встроенная функция для сортировки символов или мне нужно написать свой собственный?
например:
string word = "dabc";
Я хотел бы изменить его так, чтобы:
string sortedWord = "abcd";
Может быть, использование char - лучший вариант? Как я могу сделать это на С++?
Ответы
Ответ 1
В стандартной библиотеке есть алгоритм сортировки в заголовке <algorithm>
. Он сортируется на месте, поэтому, если вы сделаете следующее, ваше исходное слово будет отсортировано.
std::sort(word.begin(), word.end());
Если вы не хотите потерять оригинал, сначала сделайте копию.
std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
Ответ 2
std::sort(str.begin(), str.end());
Смотрите здесь
Ответ 3
Вы должны включить sort
функцию, которая находится в algorithm
, который является стандартной библиотекой шаблонов в С++.
Использование: 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;
}
ВЫВОД:
abcd
Ответ 4
Вы можете использовать sort(). sort() существует в algorithm заголовочный файл
#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;
}
Выход:
адклуры
Ответ 5
#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;
}
как будет выполняться внутренне, пожалуйста, объясните логику