题目链接: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;
}