Reverse words in a given string  


String

Given a string, write a function that will print the words of a string in reverse order  

Example

INPUT
s = “tutorial cup makes programming easy”

OUTPUT
“easy programming makes cup tutorial”

Time Complexity : O(n)

Algorithm  

Traverse the string

Please click Like if you loved this article?

1. Reverse the individual words

2. After reversing the words, reverse the whole sentence from start to end

C++ Program  

#include <bits/stdc++.h>
using namespace std;

//prototype
void reverse(char *start, char *end);
 
/*Function to reverse words*/
void reverseWords(char *s)
{
    char *word_begin = NULL;
    char *temp = s; /* temp is for word boundry */
 
 	//Reversing each word
    //Traversing the string
    for(int i=0;i<strlen(s);i++ )
    {
        //string should have a proper start ie,word_begin, which is not space ie,temp[i] != ' '
        if (( word_begin == NULL ) && (temp[i] != ' ') )
        {
            word_begin=(temp+i);
        }
        //Each word, reverse the word
        //In below if condition words are considerd by seeing space 
        if(word_begin && (temp[i+1] == ' ') || (temp[i+1] == '\0'))
        {
            reverse(word_begin, (temp+i));
            word_begin = NULL;
        }
        
    }
 
    //Reversing the entire string
    reverse(s, (temp+strlen(s)-1));
}

//this function will reverse the string, when given starting and ending pointers to the string
void reverse(char *start, char *end)
{
  char temp;
  while (start < end)
  {
    temp = *start;
    *start++ = *end;
    *end-- = temp;
  }
}
 
/* Driver function to test above functions */
int main()
{
  char s[] = " tutorial cup makes programming easy";
  reverseWords(s);
  cout<<s;
  return 0;
}

Try It

See also
Minimum insertions to form a palindrome with permutations allowed

 

Please click Like if you loved this article?

Ads Blocker Image Powered by Code Help Pro
Ads Blocker Detected!!!

This website does not work properly with AdBlock. We have detected that you are using extensions to block ads. Please disable Adblocker to view the content.

Refresh