Word Reversal
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
解题思路:这个题意比较简单,就是对于一个字符串进行单个单词的反转,然后不细致读题的话对于样例就是自己猜想的,所以还是要好好读题。然后就是在格式上面的问题处理,做题的时候就是因为换行放错了位置,样例中第一个1代表的是1组样例,然后后面一个3 代表的是后面有3个串需要处理。换行对最外层的样例组数的描述。
程序代码:
#include <stdio.h>
#include <string.h>
int main()
{
int i,j,l1,l,t,n;
char s[100010],p[10010];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
getchar();
int f=0;
while(n--)
{
memset(s,0,sizeof(s));
gets(s);
l=strlen(s);
if(l==0){
printf("-\n");
continue;
}
if(l==1){
printf("%c\n",s[0]);
continue;
}
int flag=0;
for(i=0;i<l;){
if(flag!=0)
printf(" ");
flag++;
l1=0;
memset(p,0,sizeof(p));
while(1){
if(s[i]==' ')
break;
if(s[i]=='\n')
break;
p[l1++]=s[i++];
}
i++;
l1=strlen(p);
for(j=l1-1;j>=0;j--)
printf("%c",p[j]);
}
printf("\n");
}
if(t)
printf("\n");
}
return 0;
}