Reverse middle words of a string

13 Apr, 2021
Given a string str, print reverse all words except the first and last words.
Examples: 
Input  : Hi how are you geeks 
Output  : Hi woh era uoy geeks

Input : I am fine
Output : I ma fine
Print the first word.For remaining middle words, print reverse of every word after reaching end of it. This will print reverse of all words except the last word.Print last word.
Print the first word.
For remaining middle words, print reverse of every word after reaching end of it. This will print reverse of all words except the last word.
Print last word.
C++
Java
Python3
C#
PHP
Javascript
// CPP program to print reverse of all words// except the corner words.#include <bits/stdc++.h>using namespace std; void printReverse(string str){    // Print first word    int i = 0;    for (i = 0; i < str.length() && str[i] != ' '; i++)        cout << str[i];     // Print middle words    string word = "";    for (; i < str.length(); i++) {         if (str[i] != ' ')            word += str[i];        else {            reverse(word.begin(), word.end());            cout << word << " ";            word = "";        }    }     // Print last word    cout << word << " ";} int main(){    string str = "Hi how are you geeks";    printReverse(str);    return 0;}
// Java program to print reverse of all words// except the corner words. public class GFG{ static void printReverse(String str)    {        // Print first word        int i = 0;        for (i = 0; i < str.length() && str.charAt(i) != ' '; i++)            System.out.print(str.charAt(i)) ;             // Print middle words        String word = "";                          for (; i < str.length(); i++) {                 if (str.charAt(i) != ' ')                word += str.charAt(i);                             else {                    System.out.print(new StringBuilder(word).                                reverse().toString() + " ");                    word = "";            }        }             // Print last word        System.out.print(word + " ");    }         public static void main(String []args)    {        String str = "Hi how are you geeks";        printReverse(str);    } // This code is contributed by Ryuga}
# Python3 program to print reverse of all words# except the corner words.def printReverse(s):     #Taking all the words in a list    l = [s for s in s.split(' ')]     #printing the first word as it is    print(l[0], end = ' ')          for i in range(1, len(l)-1):         #printing middle words reversed        print(l[i][::-1], end = ' ')     #printing the last word as it is    print(l[len(l)-1]) s = "Hi how are you geeks"printReverse(s)
// C# program to print reverse of all words// except the corner words.using System;using System.Text; class GFG{     static void printReverse(String str)    {        // Print first word        int i = 0;        for (i = 0; i < str.Length && str[i] != ' '; i++)            Console.Write(str[i]) ;             // Print middle words        String word = "";                          for (; i < str.Length; i++)        {                 if (str[i] != ' ')                word += str[i];                             else            {                word = reverse(word);                    Console.Write(new StringBuilder(word).ToString() + " ");                    word = "";            }        }             // Print last word        Console.Write(word + " ");    }    static String reverse(String input)    {        char[] temparray = input.ToCharArray();        int left, right = 0;        right = temparray.Length - 1;         for (left = 0; left < right; left++, right--)        {            // Swap values of left and right            char temp = temparray[left];            temparray[left] = temparray[right];            temparray[right] = temp;        }        return String.Join("",temparray);    }         // Driver code    public static void Main(String []args)    {        String str = "Hi how are you geeks";        printReverse(str);    }} // This code contributed by Rajput-Ji
<?php// PHP program to print reverse of all// words except the corner words.function printReverse($str){    // Print first word    $i = 0;    for ($i = 0; $i < strlen($str) &&                 $str[$i] != ' '; $i++)        echo $str[$i];     // Print middle words    $word = "";    for (; $i < strlen($str); $i++)    {         if ($str[$i] != ' ')            $word = $word.$str[$i];        else        {            $word = strrev($word);            echo $word . " ";            $word = "";        }    }     // Print last word    echo $word . " ";} // Driver Code$str = "Hi how are you geeks";printReverse($str); // This code is contributed// by ChitraNayal?>
<script> // JavaScript program to print reverse of// all words except the corner words.function printReverse(str){         // Print first word    var i = 0;    for(i = 0;        i < str.length && str[i] != " ";        i++)        document.write(str[i]);         // Print middle words    var word = "";    for(; i < str.length; i++)    {        if (str[i] != " ")            word += str[i];        else        {            var temp = word.split("").reverse().join("");            document.write(temp + " ");            word = "";        }    }         // Print last word    document.write(word + " ");} // Driver codevar str = "Hi how are you geeks";printReverse(str); // This code is contributed by rdtank </script>
Hi woh era uoy geeks
 
Time Complexity : O(n) Auxiliary Space : O(L) where L is length of the longest word in the string. 
sp999
ankthon
ukasp
Rajput-Ji
rdtank
cpp-string
Reverse
C++ Programs
Strings
Strings
Reverse
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.