Как удалить из строки все пробелы в c++?

Пользователь

от catherine_wintheiser , в категории: Другие , 5 месяцев назад

Как удалить из строки все пробелы в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от velma , 5 месяцев назад

@catherine_wintheiser 

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

  1. Используя цикл for и функции isspace() и erase() из библиотеки
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>

int main()
{
    std::string str = "Привет, это строка с пробелами";
    for (int i = 0; i < str.length(); i++)
    {
        if (std::isspace(str[i])) // проверяем, является ли символ пробелом
        {
            str.erase(i, 1); // удаляем пробел
            i--; // уменьшаем индекс, так как строка сдвигается влево
        }
    }
    std::cout << str << std::endl; // выводим строку без пробелов
    return 0;
}


  1. Используя функциональные алгоритмы и алгоритм-функцию remove_if() из библиотеки
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include <iostream>
#include <string>
#include <algorithm>

int main()
{
    std::string str = "Привет, это строка с пробелами";
    str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end());
    std::cout << str << std::endl; // выводим строку без пробелов
    return 0;
}


  1. Используя цикл while и метод find_first_of() из класса string:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>
#include <string>

int main()
{
    std::string str = "Привет, это строка с пробелами";
    std::string spaces = " ";
    size_t pos = str.find_first_of(spaces);
    while (pos != std::string::npos)
    {
        str.erase(pos, 1); // удаляем пробел
        pos = str.find_first_of(spaces, pos); // продолжаем искать пробелы
    }
    std::cout << str << std::endl; // выводим строку без пробелов
    return 0;
}


Все эти способы позволяют удалить пробелы из строки в C++. Выбор конкретного метода зависит от ваших предпочтений и требований к программе.