ZOJ 1151 - 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

    忽略了每次b数组的初始问题,忽略了如果是最后一个单词后面没有空格的情况,还有把空格也存进b数组的问题。

代码:

#include<stdio.h>
#include<string.h>
char a[1010],b[1010];
int change1()
{
	int i,len=0;
	len=strlen(b);
	for(i=len-1;i>=0;i--)
		printf("%c",b[i]);
}
int change()
{
	int i,j=0;
	for(i=0;a[i]!='\0';i++)
	{
		if(a[i]==' ')
		{
			b[j]='\0';
			change1();
			j=0;
			printf(" ");
		}
		else	
			b[j++]=a[i];
		if(a[i+1]=='\0'&&a[i]!=' ')
		{
			b[j]='\0';
			change1();
		}
	}
	
	
}
int main()
{
	int t,n,i;
	char ch;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		getchar();
		while(n--)
		{
			gets(a);
			change();
			printf("\n");
		}
		if(t)
			printf("\n");
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/wan_ide/article/details/86707313
ZOJ