Si tengo una cadena, ¿hay una función incorporada para ordenar los caracteres o tendría que escribir la mía propia?
por ejemplo:
string word = "dabc";
Me gustaría cambiarlo para que:
string sortedWord = "abcd";
¿Quizás usar char es una mejor opción? ¿Cómo haría esto en C ++?

std::sort?Respuestas:
Hay un algoritmo de clasificación en la biblioteca estándar, en el encabezado
<algorithm>. Se ordena en su lugar, por lo que si hace lo siguiente, su palabra original se ordenará.std::sort(word.begin(), word.end());Si no quiere perder el original, primero haga una copia.
std::string sortedWord = word; std::sort(sortedWord.begin(), sortedWord.end());fuente
std::sortordena en orden alfabético creciente de forma predeterminada. Suponiendo que es un error tipográfico de menor importancia y que desea de orden plegado, utilice la versión destd::sortque toma unaComparecomo su tercer argumento y el suministrostd::greateren lugar del predeterminadostd::less.std::stringusa elchartipo por defecto, por ejemplostd::sort(sortedWord.begin(), sortedWord.end(), std::greater<char>());, eso daría un resultado de "dcba" en la pregunta original en lugar de "abcd".std::sort(str.begin(), str.end());Ver aqui
fuente
Debe incluir la
sortfunción que se encuentra en elalgorithmarchivo de encabezado, que es una biblioteca de plantillas estándar en c ++.Uso : 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; }SALIDA:
fuente
Puede utilizar la función sort () . sort () existe en el archivo de encabezado del algoritmo
#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; }Salida:
fuente