对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
string s;
string temp="";
stack<string> stk;
getline(cin,s);
for(int i=0;i<s.size();i++)
{
if((s[i]<='z'&&s[i]>='a')||(s[i]<='Z'&&s[i]>='A'))
{
temp+=s[i];
//如果s[i]是字母,看接下来的是不是字母,将这些字母连接在一起入栈,并将temp清空;
while((s[i+1]<='z'&&s[i+1]>='a')||(s[i+1]<='Z'&&s[i+1]>='A'))
temp+=s[i+1],i++;
stk.push(temp);
temp="";
}
//i++在else语句中单独写
}
while(!stk.empty())
{
cout<<stk.top();
stk.pop();
if(!stk.empty())
cout<<" ";
}
}