您的位置:首页 > 其它

ZOJ 1151 Word Reversal

2016-04-02 09:27 197 查看
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 <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int main()
{
int n, m, len, i, j;
scanf("%d", &n);
char s[10001], temp[1255];
while (n--){
scanf("%d", &m);
while (m--){
getchar();
scanf("%[^\n]s",s);
len = strlen(s);
j = 0;
for (i = 0; i < len; i++){
while (s[i] != ' ' && i < len)
temp[j++] = s[i++];
temp[j] = '\0';
for (j = j - 1; j >= 0; j--){
printf("%c", temp[j]);
}
j = 0;
temp[0] = '\0';
if (i < len)
printf(" ");
}
printf("\n");
}
if (n)
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: