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

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

1. Использование функций класса string:

a) Используем функцию find для поиска пробелов в строке. Затем, используя функцию substr, можно извлечь каждое слово. Например:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello world!";

    size_t pos = 0;
    std::string token;
    while ((pos = str.find(' ')) != std::string::npos) {
        token = str.substr(0, pos);
        std::cout << token << std::endl;
        str.erase(0, pos + 1);
    }

    std::cout << str << std::endl;

    return 0;
}

b) Можно также использовать функцию getline для разбиения строки на отдельные слова. Например:

#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string str = "Hello world!";
    std::istringstream iss(str);

    std::string token;
    while (getline(iss, token, ' ')) {
        std::cout << token << std::endl;
    }

    return 0;
}

2. Использование функций из библиотеки strtok:

#include <iostream>
#include <cstring>

int main() {
    char str[] = "Hello world!";
    char* token = strtok(str, " ");

    while (token != nullptr) {
        std::cout << token << std::endl;
        token = strtok(nullptr, " ");
    }

    return 0;
}

3. Использование стандартного потока ввода:

#include<iostream>

int main() {
    std::string word;
    while (std::cin >> word) {
        std::cout << word << std::endl;
    }

    return 0;
}

В данном случае, каждое слово будет считываться с помощью оператора >> до тех пор, пока ввод не будет закрыт. Затем слова будут выводиться на экран.

Вы можете выбрать подход, который наиболее подходит для вашей конкретной задачи.