苦逼的程序袁

题目描述

程序袁连续加班熬夜多日,头疼欲裂,已经无法完成自己的工作了。他的工作是倒置若干句子,你能帮他完成任务么?

输入

第一行是一个数N,表示有N组结果。

后面N行每行是一个句子,如i come from Qingdao.

要求:倒置之后标点位置不变。

输出

输出N行,为倒置之后的句子。

样例输入

1I come from Qust.

样例输出

Qust. from come I

看起来很简单,还是需要东东脑子的。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

int main()
{
    char str[1000];
    int n;

    cin >> n;
    getchar();
    for (int icase = 0; icase < n; ++icase)
    {
        gets(str);
        int len = strlen(str);

        int rear = len - 1;
        int head = len - 1;
        int flag = 1;

        while (head >= 0)
        {
            if (flag == 1)
            {
                if (str[head] == ' ')
                {
                    head--;
                    rear--;
                    continue;
                }
                else flag = 0;
            }
            if (str[head] != ' ')
                head--;
            while (str[head] == ' ' || head == -1)
            {
                for (int i = head +1; i <= rear; ++i)
                    cout << str[i];
                head--;
                rear = head;
                if (head >= 0)
                    cout << " ";
            }
        }
        cout << endl;
    }
    return 0;
}


你可能感兴趣的:(ACM,QUSTOJ)