• ZOJ 1151 Word Reversal反转单词 (string字符串处理)


    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151

    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


    翻译:
    对于一串单词,直接把他们输出在一行上,要把每一个单词反转,但每一个单词的位置不要改变;
    本程序包括多组測试数据;
    输入数据的第一行是一个整数N,然后是一空行,后面跟着N个数据块,每一个数据块的格式在程序描写叙述中说明了,数据块中有一空行。
    输出格式由N个输出块组成,每一个输出块之间有一空行;

    输入描写叙述:
    现给你多组測试数据,第一行是一个正整数,表示接下来測试数据的组数,每组測试占一行,包括一串单词,中间用一个空格隔开,每一个单词仅包括大小写字母;
    输出描写叙述:
    每组測试数据都打印在一行上;


    代码:

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <algorithm>
    using namespace std;

    string s, t;
    int n, cas, flag = 0;
    char ss[1000];

    int main()
    {
        cin >> cas;
        while(cas--) {
            scanf("%d", &n);
            getchar();
            while(n--) {
                cin.getline(ss, 1000);
                s = ss;
                flag = 0;
                t.clear();
                for(int i=0; i<s.size(); i++) {
                    if(s[i] != ' ' && i <= s.size()-1) {
                        t += s[i];
                    }else {
                        reverse(t.begin(), t.end());
                        if(flag) cout << " ";
                        cout << t;
                        flag = 1;
                        t.clear();
                    }
                }
                reverse(t.begin(), t.end());
                cout << " " << t << endl;
            }
            if(cas) cout << endl;
        }
        return 0;
    }

  • 相关阅读:
    转:C++中Static作用和使用方法
    转:C/C++中,空数组、空类、类中空数组的解析及其作用
    转:c++类实例在内存中的分配
    转:union 联合体(共用体)
    转:内存对齐与补齐 字节对齐与结构体大小
    转:c++内存分配
    转:代码重构
    转:设计模式六大原则(3):依赖倒置原则
    读书
    转:Teach Yourself Programming in Ten Years——用十年教会自己编程
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3773693.html
Copyright © 2020-2023  润新知