山东财经大学新生赛暨天梯赛选拔赛 A 骆驼拼写法

版权声明:欢迎转载,如果转载,请注明转载地址,谢谢你啦!觉得文章不错的话右上角点个赞再走呀! https://blog.csdn.net/qq_40763929/article/details/88600295

链接: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,'\0',sizeof(a));
		memset(s,'\0',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\n",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]!='\0';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]!='\0';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;
}

猜你喜欢

转载自blog.csdn.net/qq_40763929/article/details/88600295
今日推荐