Как разделить строку на массив слов по пробелу в C++?

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

от sherwood_littel , в категории: C/C++ , 3 года назад

Как разделить строку на массив слов по пробелу в C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от loyal , 3 года назад

@sherwood_littel Вы можете использовать I/O потоки в C++, чтобы разделить строку на массив слов по пробелу, посмотрите ниже пример кода:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <iterator>

int main() {
    std::string str = "Тестовая строка 1";
    std::istringstream buf(str);
    std::istream_iterator<std::string> begin(buf), end;

    std::vector<std::string> array(begin, end);

    for(std::string &s: array)
        std::cout << s <<  '\n';

    // Вывод:
    // Тестовая
    // строка
    // 1
}


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

от yasmine , 2 года назад

@sherwood_littel 

В C++ можно использовать функцию std::stringstream для разделения строки на массив слов по пробелу. Пример кода:

1
2
3
4
5
6
7
std::string str = "This is a string";
std::stringstream ss(str);
std::vector<std::string> words;
std::string word;
while (ss >> word) {
    words.push_back(word);
}


В этом примере, words будет содержать массив строк {"This", "is", "a", "string"}.