Description
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
KEY:搜索出每个单词,然后让单词反向存放,然后输出;
Source:
#include<iostream> using namespace std; char str[1000]; void change(int a,int b) { int i=a,j=b; while(i<j) { char t; t=str[i]; str[i]=str[j]; str[j]=t; i++; j--; } } void translate() { int i,j; i=j=0; while(str[j]!='/0') { while(str[j]!=' '&&str[j]!='/0') j++; change(i,j-1); i=j+1; j++; } } int main() { // freopen("fjnu_1891.in","r",stdin); int n,N,i,j; cin>>N; for(i=1;i<=N;i++) { getchar(); cin>>n; getchar(); for(j=1;j<=n;j++) { gets(str); translate(); cout<<str<<endl; } cout<<endl; } return 0; }