【问题描述】
给出一个字符串,请将其每个单词反转后输出。
【输入形式】
输入第一行为一个正整数N,表示测试用例数,接下来的N行,每行一个字符串。
【输出形式】
输出N行,每行对应一个反转后的字符串。
【样例输入】
3 olleh !dlrow m'I morf .unh I ekil .tae
【样例输出】
hello world! I'm from hnu. I like eat.
【思路分析】
对于结束符的判断,在while循环条件中加入stream>>word即可。其底层,stream读取到EOF时返回空stream,while判断为空终止循环。
#include <iostream>
#include <algorithm>
#include <sstream>
using namespace std;
int main() {
int n;
string words,word;
stringstream ss;
cin>>n;
cin.get();
while (n--){
getline(cin,words);
ss<<words;
ss>>word;
reverse(word.begin(), word.end());
cout<<word;
while (ss>>word) {
reverse(word.begin(), word.end());
cout <<" "<< word;
}
cout<<endl;
ss.sync();
ss.clear();
}
return 0;