Tekens van een C++-tekenreeks sorteren

Als ik een string heb, is er dan een ingebouwde functie om de tekens te sorteren of moet ik die van mezelf schrijven?

bijvoorbeeld:

string word = "dabc";

Ik zou het zo willen wijzigen dat:

string sortedWord = "abcd";

Misschien is het gebruik van char een betere optie? Hoe zou ik dit doen in C++?


Antwoord 1, autoriteit 100%

Er is een sorteeralgoritmein de standaardbibliotheek, in de kop <algorithm>. Het sorteert op zijn plaats, dus als je het volgende doet, wordt je oorspronkelijke woord gesorteerd.

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

Als je het origineel niet wilt verliezen, maak dan eerst een kopie.

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

Antwoord 2, autoriteit 10%

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

Zie hier


Antwoord 3

U moet de functie sortopnemen. in algorithmheaderbestand dat een standaard sjabloonbibliotheekin c++.

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

OUTPUT:

abcd


Antwoord 4

U kunt de functie sort()gebruiken. sort() bestaat in algoritmeheaderbestand

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

Uitvoer:

achklors

Other episodes