c++string

String reversal in C++


I am trying to reverse the order of words in a sentence by maintaining the spaces as below.

[this is my test    string] ==> [string test my is    this]

I did in a step by step manner as,

[this is my test    string] - input string
[gnirts    tset ym si siht] - reverse the whole string - in-place
[string    test my is this] - reverse the words of the string - in-place
[string test my is    this] - string-2 with spaces rearranged

Is there any other method to do this ? Is it also possible to do the last step in-place ?


Solution

  • Your approach is fine. But alternatively you can also do:

    After this is done there will be N words on the stack and N-1 numbers in the queue.

    While stack not empty do
     print S.pop
     if stack is empty break
     print Q.deque number of spaces
    end-while