Word Reversal 逆序输出

Word Reversal Time Limit: 2 Seconds       Memory Limit: 65536 KB

For each list of words, output a line with each word reversed without changing the order of the words.


This problem contains multiple test cases!

The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line between output blocks.


Input

You will be given a number of test cases. The first line contains a positive integer indicating the number of cases to follow. Each case is given on a line containing a list of words separated by one space, and each word contains only uppercase and lowercase letters.


Output

For each test case, print the output on one line.


Sample Input

1

3
I am happy today
To be or not to be
I want to win the practice contest


Sample Output

I ma yppah yadot
oT eb ro ton ot eb
I tnaw ot niw eht ecitcarp tsetnoc



#include<iostream>  
#include<cstdio>
#include<cstring>  
using namespace std;
#define MAX 1000  
int main()
{  
   int cases,n;  
   cin>>cases;  
   char str[MAX];  
   char token[MAX];  
   int i,j,k;  
  
   while(cases--)
   {  
     cin>>n;  
     getchar(); //不加参数则等价于cin.ignore(1,EOF);忽略结尾前的1个字符cin.ignore(1024,\n)也常用  
     while(n--)
	 {  
       gets(str);  
       int len=strlen(str);  
       k=0;  
       for(i=0;i<=len;i++){  //此处要去=len否则没有检查最后个单词后是否为空格就结束最后个单词没法输出  
  
          if(str[i]!=' '&&str[i]!=0){ //遇到空格说明一个单词结束进行反向输出,遇到回车表示一行结束  
             token[k++]=str[i];  
          }  
          else{  
             for(j=k-1;j>=0;j--) 
				 cout<<token[j];  
             if(str[i]!=0) 
				 cout<<" "; //若是结尾则不需要再输入空格了  
             k=0;  
          }  
       }  
  
       cout<<endl; //一行单词结束换行  
     }  
     if(cases)  
    cout<<endl;;  
   }  
  
   return 0;  
}  


你可能感兴趣的:(Word Reversal 逆序输出)