Skip to content
Related Articles

Related Articles

Split a sentence into words in C++

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 17 Aug, 2022

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. 

Implementation:

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

Complexity Analysis:

  • Time complexity : O(n) 
  • Auxiliary Space : O(n)

Method 2 (Using strtok()):

Implementation:

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

Note: strtok() function cannot be used with C++ STL string. It requires string to be character array.

Complexity Analysis:

  • Time complexity : O(n) 
  • Auxiliary Space : O(n)

Method 3 (Using stringstream):

Implementation:

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

Time complexity : O(n) 
Auxiliary Space : O(n)


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!