1009 说反话
一、题目
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
二、输入输出
输入格式
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式
每个测试用例的输出占一行,输出倒序后的句子。
三、样例
输入样例
Hello World Here I Come
输出样例
Come I Here World Hello
四、题目分析
逐个读入字符串到字符串动态数组,反向遍历动态数组输出。
五、代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<string> str_vec;
string s;
for (vector<string>::const_iterator i = str_vec.begin(); cin >> s; i++)
{
str_vec.push_back(s);
}
int flag = 0;
for (vector<string>::const_reverse_iterator i = str_vec.rbegin(); i != str_vec.rend(); i++)
{
if (flag)
cout << ' ';
flag = 1;
cout << *i;
}
return 0;
}
六、总结
- 输入语句作为循环条件:
scanf
的返回值是读入变量的数量;cin
的返回值是iostream的引用,被重载后表示是否读入变量。
- 终端下结束输入的方法:
- Windows环境下,输入完毕后先按Enter键,再按Ctrl+Z键,最后再按Enter键,即可结束输入;
- Linux环境下,输入完毕后按Ctrl+D键即可结束输入。