1009 说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello
 1 #include<iostream>
 2 #include<vector>
 3 #include<string>
 4 
 5 using namespace std;
 6 
 7 int main() {
 8     vector<string> v;
 9     string str;
10     getline(cin, str);  //getline 是 string头文件里的成员函数,所以必须加上#include<string>
11     string tmp = "";
12     for (int i = 0; i < str.length(); i++) {
13         if (str[i] == '\n') {
14             break;
15         }
16         else if (str[i] != ' ') {
17             tmp += str[i]; //字符串还能这么用。。。
18         }
19         else {  //遇到空的位置,说明这个字符串读完了,用这种方法把长的字符串,分割成小的单独的字符串。
20             v.push_back(tmp); //把tmp里的字符串放到容器的最后
21             tmp = "";  //把tmp置空
22         }
23     }
24     v.push_back(tmp); //因为当读取到最后一个字符串的时候,因为没有空格,
25                   //所以不会执行else里内容,需要手动把最后一个字符串push_back
26     
27     /*
28     vector容器里是以字符串为一个一个的单位存取的。所以vector.size()得到的是vector
29     里面放的字符串的个数  比如:Hello World Here I Come 就是5
30     */
31 
32     for (int i = v.size() - 1; i >= 0; i--) {  //vector类里面好像不包含length这个函数,在C++里面size和length功能一样
33         if (i != 0) {
34             cout << v[i] << " ";
35         }
36         else {
37             cout << v[i];  //最后一个字符串后面不能有空格
38         }
39     }        
40     return 0;
41 }

 

posted @ 2019-04-05 14:31  喵喵队立大功  阅读(115)  评论(0编辑  收藏  举报