Сортировка символов строки C ++ - PullRequest
67 голосов
/ 02 февраля 2012

Если у меня есть строка, есть ли встроенная функция для сортировки символов, или мне придется написать свою собственную?

например:

string word = "dabc";

Я бы хотел изменить это так:

string sortedWord = "abcd";

Может, лучше использовать char? Как бы я сделал это в C ++?

Ответы [ 4 ]

127 голосов
/ 02 февраля 2012

В стандартной библиотеке <algorithm> есть алгоритм сортировки . Он сортируется на месте, поэтому, если вы выполните следующее, ваше исходное слово станет отсортированным.

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

Если вы не хотите потерять оригинал, сначала сделайте копию.

std::string sortedWord = word;
std::sort(sortedWord.begin(), sortedWord.end());
13 голосов
/ 02 февраля 2012
std::sort(str.begin(), str.end());

См. здесь

1 голос
/ 18 ноября 2015

Вы должны включить функцию 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;
}

ВЫХОД:

abcd

0 голосов
/ 06 июля 2017

Вы можете использовать функцию 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;
        }

Вывод:

achklors

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...