题目链接:https://ac.nowcoder.com/acm/contest/547/A
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

在英语中,依靠单词的大小写拼写复合词的做法,叫做"骆驼拼写法"(CamelCase)。比如,backColor这个复合词,back第一个字母b为小写,color的第一个字母为大写。

这种拼写法在正规的英语中是不允许的,但是在编程语言和商业活动中却大量使用。比如,sony公司的畅销游戏机PlayStation,play和station两个词的词首字母都是大写的。

"骆驼拼写法"又分为两种。第一个词的首字母小写,后面每个词的首字母大写,叫做"小骆驼拼写法"(lowerCamelCase);第一个词的首字母,以及后面每个词的首字母都大写,叫做"大骆驼拼写法"(UpperCamelCase),又称"帕斯卡拼写法"(PascalCase)。

它之所以被叫做"骆驼拼写法",是因为大小写的区分使得复合词呈现"块状"(bump),看上去就像骆驼的驼峰(hump)。

这种变量命名方法非常适合于编程时的变量命名。

现在给你N行单词,要求你把每行单词按照小骆驼拼写法的规则进行拼写,然后输出

输入描述:

第一行一个数字N(0<N<100),表示行数,之后有N行。
每行有不定数目的单词,以空格分隔。
每个单词由不定长度的英文字母(A~Z,a~z)组成

输出描述:

N行,表示输出

输入

4
user name
pass word
get message from HTTP response 
find minimum path

输出

userName
passWord
getMessageFromHttpResponse
findMinimumPath

解题思路

简单的字符串处理。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    char str[1005];
    scanf("%d%*c", &t);
    while (t--) {
        gets(str);
        int i = 0;
        while (str[i] == ' ')
            i++;
        if (str[i] >= 'A' && str[i] <= 'Z')
            str[i] += 32;
        printf("%c", str[i]);
        for (i++; str[i]; i++) {
            if (str[i] != ' ') {
                if (str[i - 1] == ' '  && str[i] >= 'a' && str[i] <= 'z')
                    str[i] -= 32;
                if (str[i - 1] != ' ' && str[i] >= 'A' && str[i] <= 'Z')
                    str[i] += 32;
                printf("%c", str[i]);
            }
        }
        printf("\n");
    }
    return 0;
}