
#include <iostream>#include <string>#include <stack>using namespace std;int main(){ string str; string str_temp; stack <string> vec; int flag = 0;//检索到字母标志 int num = 0;//检索到的字母个数 while(getline(cin,str)) { str+=" ";//给字符串末尾添加一个非字母元素 for(int i=0;i<str.size();i++) { if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) { flag = 1;//标志检索到字母 num++; } else { if(flag == 1)//如果检索到字母后被打断 { str_temp = str.substr(i-num,num);//按照字母数截取 vec.push(str_temp);//入栈 flag = 0;//重置标志 num = 0;//重置字母数 } } } //出栈输出 while(!vec.empty()) { str_temp = vec.top(); cout<<str_temp; vec.pop(); if(!vec.empty()) { cout<<' '; } } } cout<<endl;}