给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
这道题关键是getline()的使用,里面的两个参数第一个是cin第二个是将要赋值的对象,直接用cin的话会被空格隔断
然后每到一个空格的时候输出一个单词存放进入vector
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string str;
getline(cin,str);
vector<string> words;
int n = 0;
int index = 0;
for (int i = 0; i < str.length();i++)
{
if(str[i] != ' ')
{
n++;
continue;
}
else{
string str1 = str.substr(index, n);
words.push_back(str1);
index = i + 1;
n = 0;
}
}
string str1 = str.substr(index, n);
words.push_back(str1);
for (int i = words.size() - 1; i >0;i--)
{
cout << words[i] << ' ';
}
cout << words[0];
return 0;
}