В 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; }
В данном случае, каждое слово будет считываться с помощью оператора >>
до тех пор, пока ввод не будет закрыт. Затем слова будут выводиться на экран.
Вы можете выбрать подход, который наиболее подходит для вашей конкретной задачи.