90 votes

Trier les caractères d'une chaîne C++

Si j'ai une chaîne de caractères, existe-t-il une fonction intégrée pour trier les caractères ou dois-je écrire la mienne ?

par exemple :

string word = "dabc";

Je voudrais le changer pour que :

string sortedWord = "abcd";

Peut-être que l'utilisation de chars est une meilleure option ? Comment puis-je faire cela en C++ ?

154voto

R. Martinho Fernandes Points 96873

Hay un algorithme de tri dans la bibliothèque standard, dans l'en-tête <algorithm> . Il trie en place, donc si vous faites ce qui suit, votre mot original sera trié.

std::sort(word.begin(), word.end());

Si vous ne voulez pas perdre l'original, faites d'abord une copie.

std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());

16voto

dreamlax Points 47152
std::sort(str.begin(), str.end());

Ver aquí

2voto

abe312 Points 4155

Vous devez inclure sort qui se trouve dans algorithm qui est un fichier d'en-tête bibliothèque de modèles standard en c++.

Utilisation : 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;
}

SORTIE :

abcd

2voto

rashedcs Points 976

Vous pouvez utiliser trier() La fonction sort() existe dans algorithme fichier d'en-tête

        #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;
        }

Sortie :

achklors

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X