Related Articles

Related Articles

Split a sentence into words in C++
  • Difficulty Level : Easy
  • Last Updated : 30 Oct, 2020

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

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Output

Geeks
for
Geeks

Method 2 (Using strtok())  



CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Output

Geeks
for
Geeks

Method 3 (Using stringstream)

CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Output

Geeks
for
Geeks

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :