How to Iterate through a String word by word in C++

Given a String comprising of many words separated by space, the task is to iterate over these words of the string in C++.

Example:

Input: str = {“GeeksforGeeks is a computer science portal for Geeks”};
Output:
GeeksforGeeks
is
a
computer
science
portal
for
Geeks



Input: str = {“Geeks for Geeks”};
Output:
Geeks
for
Geeks

Approach: istringstream class is best suitable for this purpose. When a string is given split by whitespace, this class can be used to easily fetch and use each word of the String.

Syntax:

string str = {"Geeks for Geeks"};
istringstream iss(str);

Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to Iterate through
// a String word by word
  
#include <iostream>
#include <sstream>
#include <string>
  
using namespace std;
  
// Driver code
int main()
{
  
    // Get the String
    string str = "GeeksforGeeks is a computer "
                 "science portal for Geeks";
  
    // Initialise the istringstream
    // with the given string
    istringstream iss(str);
  
    // Iterate the istringstream
    // using do-while loop
    do {
        string subs;
  
        // Get the word from the istringstream
        iss >> subs;
  
        // Print the word fetched
        // from the istringstream
        cout << subs << endl;
  
    } while (iss);
  
    return 0;
}

chevron_right


Output:

GeeksforGeeks
is
a
computer
science
portal
for
Geeks



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.