Skip to content
Related Articles

Related Articles

Improve Article

Split a sentence into words in C++

  • Difficulty Level : Easy
  • Last Updated : 17 Feb, 2021

Give a sentence, print different words present in it. Words are separated by space. 

Examples: 

Input : str = "Geeks for Geeks"
Output : Geeks
         for
         Geeks  
Explanation : All space separated words 
are printed line by line.

Input : str = "a computer science portal"
Output : a
         computer
         science
         portal

Method 1 (Writing our own logic) 
We traverse through all characters. If current character is space, we have reached end of a word, we print current word and reset it to empty. Else we append current character to word. 

CPP




// C++ program to print words in a sentence
#include <bits/stdc++.h>
using namespace std;
  
void removeDupWord(string str)
{
    string word = "";
    for (auto x : str) 
    {
        if (x == ' ')
        {
            cout << word << endl;
            word = "";
        }
        else {
            word = word + x;
        }
    }
    cout << word << endl;
}
  
// Driver code
int main()
{
    string str = "Geeks for Geeks";
    removeDupWord(str);
    return 0;
}
Output
Geeks
for
Geeks

Method 2 (Using strtok())  



CPP




// C++ program to words in a sentence.
#include <bits/stdc++.h>
using namespace std;
  
void removeDupWord(char str[])
{
    // Returns first token 
    char *token = strtok(str, " ");
   
    // Keep printing tokens while one of the
    // delimiters present in str[].
    while (token != NULL)
    {
        printf("%s\n", token);
        token = strtok(NULL, " ");
    }
}
  
// Driver code
int main()
{
    char str[] = "Geeks for Geeks";
    removeDupWord(str);
    return 0;
}
Output
Geeks
for
Geeks

Method 3 (Using stringstream)

CPP




// C++ program to print words in a sentence
#include <bits/stdc++.h>
using namespace std;
  
void removeDupWord(string str)
{
    // Used to split string around spaces.
    istringstream ss(str);
  
    string word; // for storing each word
  
    // Traverse through all words
    // while loop till we get 
    // strings to store in string word
    while (ss >> word) 
    {
        // print the read word
        cout << word << "\n";
    }
}
  
// Driver code
int main()
{
    string str = "Geeks for Geeks";
    removeDupWord(str);
    return 0;
}
Output
Geeks
for
Geeks

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :