Given a string str, we need to print reverse of individual words.
Examples:
Input : Hello World Output : olleH dlroW Input : Geeks for Geeks Output : skeeG rof skeeG
Method 1 (Simple): Generate all words separated by space. One by one reverse words and print them separated by space.
Method 2 (Space Efficient): We use a stack to push all words before space. As soon as we encounter a space, we empty the stack.
C++
// C++ program to reverse individual words in a given // string using STL list #include <bits/stdc++.h> using namespace std; // reverses individual words of a string void reverseWords(string str) { stack<char> st; // Traverse given string and push all characters // to stack until we see a space. for (int i = 0; i < str.length(); ++i) { if (str[i] != ' ') st.push(str[i]); // When we see a space, we print contents // of stack. else { while (st.empty() == false) { cout << st.top(); st.pop(); } cout << " "; } } // Since there may not be space after // last word. while (st.empty() == false) { cout << st.top(); st.pop(); } } // Driver program to test function int main() { string str = "Geeks for Geeks"; reverseWords(str); return 0; } |
Java
// Java program to reverse individual // words in a given string using STL list import java.io.*; import java.util.*; class GFG { // reverses individual words of a string static void reverseWords(String str) { Stack<Character> st=new Stack<Character>(); // Traverse given string and push all // characters to stack until we see a space. for (int i = 0; i < str.length(); ++i) { if (str.charAt(i) != ' ') st.push(str.charAt(i)); // When we see a space, we print // contents of stack. else { while (st.empty() == false) { System.out.print(st.pop()); } System.out.print(" "); } } // Since there may not be space after // last word. while (st.empty() == false) { System.out.print(st.pop()); } } // Driver program to test above function public static void main(String[] args) { String str = "Geeks for Geeks"; reverseWords(str); } } |
Python3
# Python3 program to reverse individual words # in a given string using STL list # reverses individual words of a string def reverserWords(string): st = list() # Traverse given string and push all characters # to stack until we see a space. for i in range(len(string)): if string[i] != " ": st.append(string[i]) # When we see a space, we print # contents of stack. else: while len(st) > 0: print(st[-1], end= "") st.pop() print(end = " ") # Since there may not be space after # last word. while len(st) > 0: print(st[-1], end = "") st.pop() # Driver Code if __name__ == "__main__": string = "Geeks for Geeks" reverserWords(string) # This code is contributed by # sanjeev2552 |
C#
// C# program to reverse individual // words in a given string using STL list using System; using System.Collections.Generic; class GFG { // reverses individual words // of a string public static void reverseWords(string str) { Stack<char> st = new Stack<char>(); // Traverse given string and push // all characters to stack until // we see a space. for (int i = 0; i < str.Length; ++i) { if (str[i] != ' ') { st.Push(str[i]); } // When we see a space, we // print contents of stack. else { while (st.Count > 0) { Console.Write(st.Pop()); } Console.Write(" "); } } // Since there may not be // space after last word. while (st.Count > 0) { Console.Write(st.Pop()); } } // Driver Code public static void Main(string[] args) { string str = "Geeks for Geeks"; reverseWords(str); } } // This code is contributed // by Shrikant13 |
Output:
skeeG rof skeeG
Python | Reverse each word in a sentence
Using stringstream in C++ :
#include<bits/stdc++.h> using namespace std; void printWords(string str) { // word variable to store word string word; // making a string stream stringstream iss(str); // Read and print each word. while (iss >> word){ reverse(word.begin(),word.end()); cout<<word<<" "; } } // Driver code int main() { string s = "GeeksforGeeks is good to learn"; printWords(s); return 0; } // This code is contributed by Nikhil Rawat |
Output:
skeeGrofskeeG si doog ot nrael
Time complexity : O(n)
Space complexity : O(n)
Using Java 8 Streams
import java.util.Arrays; import java.util.stream.Collectors; // This code is contributed by Mayank Sharma public class reverseIndividual { public static void main(String[] args) { String str = "Welcome to GFG"; // Splitting the string based on space and reverse each part // and then join String result = Arrays.asList(str.split(" ")) .stream() .map(s -> new StringBuilder(s).reverse()) .collect(Collectors.joining(" ")); System.out.println(result); } } |
Output:
emocleW ot GFG
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.

