逆序输出单词

来源:互联网 发布:linux gtk编程 编辑:程序博客网 时间:2024/05/08 00:12

一、题目描述

对字符串中的所有单词进行倒排。

说明:

1、每个单词是以26个大写或小写英文字母构成;

2、非构成单词的字符均视为单词间隔符;

3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;

4、每个单词最长20个字母;

输入描述:

输入一行以空格来分隔的句子

输出描述:

输出句子的逆序

示例1

输入

I am a student

输出

student a am I

二、解决思路

从前遍历,逐个单词插入向量容器中,再逆序输出单词 。

#include<iostream>#include<vector>#include<string>using namespace std;int main(){string s;vector<string> vec;while(getline(cin,s)){vec.clear();//清空向量 int i;string temp="";//空串 for(i=0;i<s.size();i++){if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){temp+=s[i];}else{if(temp.size()>0){vec.push_back(temp);temp="";//再次赋值为空串 }    }}//如果最后一个单词后面没有任何字符,甚至连标点符号都没有//这种情况需要把temp中的内容插入向量容器(前提是最后一个是单词) if(temp.size()>0)    vec.push_back(temp);for(i=vec.size()-1;i>0;i--){cout<<vec[i]<<' ';}cout<<vec[0]<<endl;} return 0;}





原创粉丝点击