Wypisanie ciągu znaków, a wypisywanie słów w kolejności od tyłu, to dwie różne rzeczy. Na C++owe - vector, std::reverse, lub cokolwiek właściwie, setki sposobów
na szkolny C++, aka C with couts (czyli najpewniej to co jest w szkole) - prealokowana tablica/własna implementacja vectora, wypisanie pętlą od tyłu
Wczytywanie nieokreślonej liczby stringów
std::string s;
while(cin>>s){ ... }