Программа C++ для удаления пробелов из строки | Различные методы

Вот программа на C++ для удаления пробелов из строки:

#include <iostream>
#include <string>
using namespace std;
string removeSpaces(string str) {
    str.erase(remove(str.begin(), str.end(), ' '), str.end());
    return str;
}
int main() {
    string input;
    cout << "Enter a string: ";
    getline(cin, input);
    string result = removeSpaces(input);
    cout << "String after removing spaces: " << result << endl;
    return 0;
}

Эта программа использует функции removeи eraseиз библиотеки на C++ для удаления пробелов из входной строки. Функция removeудаляет все вхождения указанного символа (в данном случае пробела ' ') и возвращает итератор, указывающий на новый конец строки. Затем функция eraseстирает элементы из возвращенного итератора до конца строки.

Вот несколько дополнительных методов удаления пробелов из строки в C++:

Метод 1. Использование цикла для перебора каждого символа строки и создания новой строки без пробелов.

#include <iostream>
#include <string>
using namespace std;
string removeSpaces(string str) {
    string result = "";
    for (char c : str) {
        if (c != ' ') {
            result += c;
        }
    }
    return result;
}
int main() {
    string input;
    cout << "Enter a string: ";
    getline(cin, input);
    string result = removeSpaces(input);
    cout << "String after removing spaces: " << result << endl;
    return 0;
}

Метод 2: использование функции replaceв цикле для замены каждого пробела пустой строкой.

#include <iostream>
#include <string>
using namespace std;
string removeSpaces(string str) {
    size_t found = str.find(' ');
    while (found != string::npos) {
        str.replace(found, 1, "");
        found = str.find(' ');
    }
    return str;
}
int main() {
    string input;
    cout << "Enter a string: ";
    getline(cin, input);
    string result = removeSpaces(input);
    cout << "String after removing spaces: " << result << endl;
    return 0;
}