PAT1009 说反话
题目
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式
每个测试用例的输出占一行,输出倒序后的句子。
输入样例
输出样例
思路
如果是C的话,要判断空格和单词的关系,保证单词不逆序,而单词的顺序为逆序。
不过C++可以直接拿到单词的数组,逆序输出就行啦~
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include <iostream> #include <string> #include <vector> using namespace std; int main(int argc, char const *argv[]) { vector<string> vec; string s; char ch; while (cin >> s) { vec.push_back(s); if ((ch = getchar()) == '\n') break; } for (auto it = vec.rbegin(); it != vec.rend(); it++) { if (it != vec.rend() - 1) cout << *it << " "; else cout << *it; } return 0; }
|