链接:https://ac.nowcoder.com/acm/contest/547/A
来源:牛客网
题目描述
在英语中,依靠单词的大小写拼写复合词的做法,叫做"骆驼拼写法"(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行,表示输出
示例1
输入
4
user name
pass word
get message from HTTP response
find minimum path
输出
userName
passWord
getMessageFromHttpResponse
findMinimumPath
这题要注意,HTTP 要变成 Http,那么,除了第一个单词外,其余的每个单词,不仅要把首字母变大写,还要把非首字母变小写。
然后第一个单词,全变小写。
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
char a[100000],s[10000][100];
int main()
{
int n,m,j,k,i,T;
cin>>n;
getchar();
while (n--)
{
memset(a,' ',sizeof(a));
memset(s,' ',sizeof(s));
gets(a);
int x=0,y=0;
for (i=0;i<strlen(a);i++)
{
if (a[i]==' ')
{
x++;
y=0;
continue;
}
s[x][y++] = a[i];
}
/*for (i=0;i<=x;i++)
printf("%s
",s[i]);*/
if (s[0][0]>='A'&&s[0][0]<='Z')
s[0][0] = s[0][0]-'A'+'a';
for (i=1;s[0][i]!=' ';i++)
if (s[0][i]>='A'&&s[0][i]<='Z')
s[0][i] = s[0][i]-'A'+'a';
printf("%s",s[0]);
for (i=1;i<=x;i++)
{
if (s[i][0]>='a'&&s[i][0]<='z')
s[i][0] = s[i][0]-'a'+'A';
for (j=1;s[i][j]!=' ';j++)
if (s[i][j]>='A'&&s[i][j]<='Z')
s[i][j] = s[i][j]-'A'+'a';
printf("%s",s[i]);
}
cout<<endl;
}
return 0;
}