1009. 说反话 (20)

来源:互联网 发布:kmp next数组求法 编辑:程序博客网 时间:2024/05/24 01:50

1009. 说反话 (20)

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

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

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

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello解答本题的注意点:(1)在没有空格输入的时候,直接输出该字符串;(2)注意查找函数的使用方式。源代码如下:#include<stdio.h>#include"string"#include<iostream>using namespace std;int main(){    string s;    getline(cin,s);//输入字符串            int i=0;    string::size_type position;    position=0;    string str=" ";    while((position=s.find_first_of(str,position))!=string::npos)        {            i++;            position++;        }    if(i==0)        cout<<s;    else    {    int first=0;    int last=s.length();    while(i>=0)    {                int j=s.find_last_of(str,last);//将查找到的位置赋给first        first=j;        string str1=s.substr(first+1,last-first);//从first开始,截取last-first个字符        cout<<str1;        if(i!=0)            cout<<' ';        first--;        last=first;        i--;    }    }    return 0;} 
0 0