7-59 翻转单词顺序 (20 分)
给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变。例如,如果字符串为"Hello World",则翻转后为"World Hello"。单词间以一个或多个空格分隔。注意,字符串开头和结尾都可能有多个空格。
输入格式:
输入可能包括多行。每行代表一个字符串,除了空格外,标点符号和普通字母一样处理。你可以认为一行的字符总数不会超过50000个,单词数不会超过600,每个单词的长度也不会超过30。
输出格式:
输出包括多行,每行对应输入的一行,为翻转后的字符串。
输入样例:
student. a am I
输出样例:
I am a student.
#include<iostream> #include<vector> #include<sstream> #include<stack> using namespace std; int main() { string s; vector<string>v; stack<string>st; while (getline(cin,s)) { stringstream t(s); while (t >> s) v.push_back(s); for (int i = v.size() - 1; i >= 0; i--) { if (i != v.size() - 1) cout << ' '; cout << v[i]; } cout << endl; v.clear(); } return 0; }