zoj1151 zoj1295 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


http://blog.csdn.net/AC_0_summer/article/details/44747401


#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
char s[500];
void _S()
{
    int L=0;
    s[L++]=getchar();
    while(s[L-1]!='
'){
        if(s[L-1]==' ')
        {
          for(int i=L-2;i>=0;i--)
           putchar(s[i]);
           printf(" ");
          L=0;
        }
        s[L++]=getchar();
    }
    for(int i=L-2;i>=0;i--)
     putchar(s[i]);
    printf("
");
    return ;
}

int main()
{
    int n,T;

    scanf("%d",&T);
    while(T--){
      scanf("%d
",&n);//过滤换行符 
      while(n--) _S();
      if(T) printf("
"); //此题容易因为此处PE 
    }
    return 0;
}
zoj1295:
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
void _S()
{
    char s[71];
    int num=0;
    char c=getchar();
    while(true){
        if(c=='
'){
            for(int i=num;i>=1;i--) cout<<s[i];
            cout<<endl;
            return ;
        }
       s[++num]=c;
       c=getchar();
    }
}
int main()
{
    int n;
    scanf("%d
",&n);
    while(n--)
        _S()
    return 0;
} 


为什么感觉题目没有解释很清楚,让那么多人PE。。。。。。。。。。。

当然本题处理方式有很多,也可以每一行输入后再处理。个人属于习惯单个字符输入的那种(此时要注意过滤换行符什么的)。


原文地址:https://www.cnblogs.com/hua-dong/p/7603978.html