sort исключая пробелы
У меня есть строка.
string s = "bcd ae fhgd"
надо что бы на выходе было: "abc dd efgh" какой у sort должен быть компаратор для получения такого результата?
Источник: Stack Overflow на русском
У меня есть строка.
string s = "bcd ae fhgd"
надо что бы на выходе было: "abc dd efgh" какой у sort должен быть компаратор для получения такого результата?
Как и сказал Stanislav Volodarskiy
Нужна строка без пробелов, её нужно отсортировать, а затем в цикле если символ не пробел заменяем из сортированного, если пробел, то пропускаем
#include <iostream>
#include <algorithm>
#include <string>
int main() {
std::string input = "bcd ae fhgd";
std::string output = input;
std::string sorted = input;
sorted.erase(std::remove(sorted.begin(), sorted.end(), ' '), sorted.end());
std::sort(sorted.begin(), sorted.end());
int j = 0;
for (int i = 0; i < input.length(); i++) {
if (output[i] != ' ') {
output[i] = sorted[j];
j++;
}
}
std::cout << output << std::endl;
return 0;
}