#include<bits/stdc++.h> //和单词倒排一样 using namespace std; char a[10010]; int b[10010];//用于记录每一个单词开头的位置 int main(){ scanf("%[^\n]",a);//使用%[^\n]输入带空格的一行 int r,l,num=0; int len=strlen(a); int p=0;//用于判定i前一个字符是否为字母 for(int i=0;i<len;i++){ if(p==1&&((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')))continue; //如果该点为字母且前一个字符也是字母,跳过 if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){ b[num++]=i;p=1;//前一个字符为非字母,且该点为字母,意味该点为单词开头,记录该点,并且把p置为1 } else p=0;//如果是非字母,p置为0 } for(int i=num-1;i>=0;i--){ for(int j=b[i];(a[j]>='a'&&a[j]<='z')||(a[j]>='A'&&a[j]<='Z');j++){ printf("%c",a[j]); } printf(" "); } return 0; }