欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT (Basic Level) Practice (中文)1009 说反话 (20)

程序员文章站 2022-07-15 16:25:39
...

1009 说反话

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

输入格式:

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

输出格式:

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

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello

c++没有slipt函数,只能自己写了,我的做法是先读入字符串,然后从后往前判断,如果遇到空格,则输出目前的单词,再往前判断
最后还要输出第一个单词,因为判断条件是==’ ‘时才进入,第一个单词之前没有空格,所以要额外输出

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
    //string str[100];
    string ch;

    getline(cin,ch);
    int index=ch.size();

    int x=ch.size()-1;
    while(x!=0)
    {
        if(ch[x]==' ')
        {
            for(int i=x+1;i<index;i++)
            {
                cout<<ch[i];
            }
            cout<<" ";
            index=x;
            x--;
        }
        x--;
    }
    for(int i=0;i<index;i++)
    {
        cout<<ch[i];
    }

}