Hdu-1062
问题描述
伊格内修斯喜欢用相反的方式写字。给定 Ignatius 编写的一行文本,您应该反转所有单词,然后输出它们。
输入
输入包含多个测试用例。输入的第一行是一个整数 T,它是测试用例的数量。接下来是 T 个测试用例。
每个测试用例都包含一行包含多个单词的行。一行最多有 1000 个字符。
输出
对于每个测试用例,您应该输出已处理的文本。
示例输入
3
olleh !dlrow
m'I morf .udh
I ekil .mca
示例输出
hello world!
I'm from hdu.
I like acm.
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
char ch;
cin>>n;
getchar();//读取数字后的换行符
while(n--)
{
stack<char> s;
while(1)
{
ch=getchar();
if(ch==' '||ch=='\n'||ch=='EOF')//已经读取了一个单词
{
while(!s.empty())//当栈不为空时输出最后一个字母
{
printf("%c",s.top());
s.pop();//输出后将该字母弹出
}
if(ch=='\n'||ch=='EOF')//当读取完一行时跳出内层循环
{
break;
}
}
else//还没有读取完一个单词 该字母入栈
{
s.push(ch);
}
}
printf("\n");
}
return 0;
}