1146: Word Reversal
Status | In/Out | TIME Limit | MEMORY Limit | Submit Times | Solved Users | JUDGE TYPE |
---|---|---|---|---|---|---|
![]() | stdin/stdout | 3s | 8192K | 1941 | 536 | Standard |
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<stdio.h>
#include<string.h>
#include<ctype.h>
void reverse(char *a)
{
char cc;int i,j;
for(i=0, j=strlen(a)-1;i<j;i++,j--)
{
cc=*(a+i);*(a+i)=*(a+j);*(a+j)=cc;
}
}
int main()
{
int mm,ll=0;
scanf("%d",&mm);
for(;mm>0;mm--)
{
if(ll==0) ll++;
else printf("/n");
int nn;
char c[50],a[100];
scanf("%d",&nn);
getchar();
for(;nn>0;nn--)
{
char c[50]="/0",a[100]="/0";
int i,l=0;
gets(a);
for(i=0;i<strlen(a);)
{
if(isalpha(a[i]))
{
c[l++]=a[i];
i++;
while(isalpha(a[i]))
c[l++]=a[i++];
c[l++]='/0';
reverse(c);
printf("%s",c);
}
else
{
putchar(a[i]);i++;l=0;
}
}
printf("/n");
}
}
return 0;
}