The way I see it, you have two problems to solve:
- How to break up the input into tokens separated by a space?
- How to reverse a token?
A C++ style solution to the first problem would involve reading token by token into a std::string object using the overloaded operator>> for input streams. A C++ style solution to the second problem would involve say, the std::reverse generic algorithm, or something along those lines (possibly written by yourself, since this is presumably for practice).
Note that you can quite easily reverse a string in-place; extra memory proportional to the string length is unnecessary.