Подтвердить что ты не робот

Сортировка символов строки С++

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

например:

string word = "dabc";

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

string sortedWord = "abcd";

Может быть, использование char - лучший вариант? Как я могу сделать это на С++?

4b9b3361

Ответ 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;
}

как будет выполняться внутренне, пожалуйста, объясните логику