题目
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式
每个测试用例的输出占一行,输出倒序后的句子。
输入样例
Hello World Here I Come
输出样例
Come I Here World Hello
分析
将输入的单词依次存入栈中,先输出一次栈顶,将输出过的单词弹出,再依次输出剩下的单词。(用到STL中的栈,stack)。
#include <iostream>
#include <stack>
using namespace std;
stack<string> s;
string x;
int main()
{
while(cin>>x) s.push(x);
cout<<s.top();
s.pop();
while(!s.empty()){
cout<<" "<<s.top();
s.pop();
}
return 0;
}
一开始没做出来,用的gets来接收的字符串,但是在C++11标准中,gets被移除了。所以考虑使用STL中的栈来解决。