题目
题目描述
对字符串中的所有单词进行倒排。
说明:
1. 每个单词是以26个大写或小写英文字母构成;
2. 非构成单词的字符均视为单词间隔符;
3. 要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4. 每个单词最长20个字母;
输入
输入一行以空格来分隔的句子
输出
输出句子的逆序
样例输入
I am a student
样例输出
student a am I
思路
先获取每一个字符串,倒着输出。
代码
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<string> vec;
string str="";
while(cin>>str)
{
vec.push_back(str);//利用容器来存储字符串
if(cin.get()=='\n')//通过判断是否还行,来决定是否继续读取字符串
{
break;
}
}
//利用vector的反向迭代器,倒着输出
for(vector<string>::reverse_iterator iter = vec.rbegin(); iter!=vec.rend(); ++iter)
{
cout<<*iter;//输出
//最后一个后面不用空格
if(iter!=vec.rend())
{
cout<<" ";
}
else
{
cout<<endl;
}
}
return 0;
}
附送个表情包