题目描述
程序袁连续加班熬夜多日,头疼欲裂,已经无法完成自己的工作了。他的工作是倒置若干句子,你能帮他完成任务么?
输入
第一行是一个数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;
}