- 使用getline获取一行字符串
- 使用空格“ ”代替字符串中非字母数字;
- 使用stringstream对处理过后的数据进行逐个单词读取,会自动跳过空格;
- 使用vector储存每个单词,然后用reverse函数倒排;
- 输出单词和空格,注意最后一个单词没有空格,最后输出换行符。
#include<bits/stdc++.h> using namespace std; int main(){ string s; while(getline(cin,s)){ for(auto &c: s){// 如果接受的是一个引用,那么一定会更改之前东西 if(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') { continue; } else { c = ' '; } } stringstream ss(s);//可以自动跳过空格进行读取,相当于空了一个格 string word; vector<string> vec; while(ss>>word){ vec.push_back(word); } reverse(vec.begin(),vec.end()); // 记住这个技巧,数组是可以reverse的。 for(int i = 0 ; i< vec.size();i++){ cout<<vec[i]; if(i!=vec.size()-1){ cout<<' '; } } cout<<endl; } return 0; }