#include <string>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
std::vector<std::string> sentVec;
void getSent(string sent)
{
// remove the periods(s)
auto iter = std::remove_if(sent.begin(), sent.end(), [] (char ch) { return ch == '.';});
sent.erase(iter, sent.end());
// copy the daa to a vector
std::istringstream iss(sent);
string currentword;
while ( iss >> currentword)
sentVec.push_back(currentword);
}
int main()
{
getSent("I am what am I.");
std::vector<std::string> backward = sentVec;
std::reverse(backward.begin(), backward.end());
cout << "Forward:" << endl;
copy(sentVec.begin(), sentVec.end(), ostream_iterator<string>(cout, " "));
cout << "\nBackwards:" << endl;
copy(backward.begin(), backward.end(), ostream_iterator<string>(cout, " "));
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGl0ZXJhdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzZW50VmVjOwoKdm9pZCBnZXRTZW50KHN0cmluZyBzZW50KQp7CiAgIC8vIHJlbW92ZSB0aGUgcGVyaW9kcyhzKQogICBhdXRvIGl0ZXIgPSBzdGQ6OnJlbW92ZV9pZihzZW50LmJlZ2luKCksIHNlbnQuZW5kKCksIFtdIChjaGFyIGNoKSB7IHJldHVybiBjaCA9PSAnLic7fSk7CiAgIHNlbnQuZXJhc2UoaXRlciwgc2VudC5lbmQoKSk7CiAgIAogICAvLyBjb3B5IHRoZSBkYWEgdG8gYSB2ZWN0b3IKICAgc3RkOjppc3RyaW5nc3RyZWFtIGlzcyhzZW50KTsKICAgc3RyaW5nIGN1cnJlbnR3b3JkOwogICB3aGlsZSAoIGlzcyA+PiBjdXJyZW50d29yZCkKICAgICAgc2VudFZlYy5wdXNoX2JhY2soY3VycmVudHdvcmQpOwp9CgppbnQgbWFpbigpCnsKICBnZXRTZW50KCJJIGFtIHdoYXQgYW0gSS4iKTsKICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gYmFja3dhcmQgPSBzZW50VmVjOwogIHN0ZDo6cmV2ZXJzZShiYWNrd2FyZC5iZWdpbigpLCBiYWNrd2FyZC5lbmQoKSk7CiAgY291dCA8PCAiRm9yd2FyZDoiIDw8IGVuZGw7CiAgY29weShzZW50VmVjLmJlZ2luKCksIHNlbnRWZWMuZW5kKCksIG9zdHJlYW1faXRlcmF0b3I8c3RyaW5nPihjb3V0LCAiICIpKTsKICBjb3V0IDw8ICJcbkJhY2t3YXJkczoiIDw8IGVuZGw7CiAgY29weShiYWNrd2FyZC5iZWdpbigpLCBiYWNrd2FyZC5lbmQoKSwgb3N0cmVhbV9pdGVyYXRvcjxzdHJpbmc+KGNvdXQsICIgIikpOwp9