zoukankan      html  css  js  c++  java
  • 百度之星资格赛E:C++ 与Java

    E:C++ 与Java

    时间限制:
    2000ms
    内存限制:
    65536kB
    描述

    在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好者会说他们的程序更加整洁且不易出错。C++的爱好者则会嘲笑Java程序很慢而且代码很长。 另一个Java和C++爱好者不能达成一致的争论点就是命名问题。在Java中一个多个单词构成的变量名应该按照如下格式命名:第一个单词的开头用小写字母,其余单词都以大写字母开头,单词与单词之间不加分隔符,除单词的首字母之外的字母一律使用小写。例如:javaIdentifier, longAndMnemonicIdentifier, name, bAIDU. 与Java不同C++的命名全都使用小写字母,在单词和单词之间使用“_”来作为分隔符。例如:c_identifier, long_and_mnemonic_identifier, name (当名字中只有一个单词的时候,Java与C++的命名是相同的), b_a_i_d_u. 你的任务就是写一个程序能让C++和Java程序相互转化。当然转换完成的程序中的变量名也要符合其语言的命名规则,否则的话是不会有人喜欢你的转换器的。 首先你要做的就是写一个变量名转换器。给出一个变量名,你要先检测是Java的还是C++的,然后把它转化为另一种命名格式。如果两种都不是,那么你的程序就要报错。转换过程必须保持原有的单词顺序,只能改变字母的大小写和增加或删除下划线。

    输入
    输入有且仅有一行,是一个变量名,其中包含字母和下划线,长度不超过100。
    输出
    如果输入的是Java变量名那么输出它对应的C++形式。如果是C++的则输出对应的Java的形式。如果两种都不是就输出“Error!”。
    样例输入
    输入样例1:
    long_and_mnemonic_identifier
    输入样例2:
    anotherExample
    输入样例3:
    i
    输入样例4:
    bad_Style
    样例输出
    输出样例1:
    longAndMnemonicIdentifier
    输出样例2:
    another_example
    输出样例3:
    i
    输出样例4:
    Error!
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	char str[110];
    	int i,j,k,num=0;
    	int count1=0,count2=0,count3=0;
    
    	gets(str);
    	k=strlen(str);
    
    	for(i=0;i<k;i++)
    	{
    		if(str[i]!='_')
    		{
    			if(str[i]>='a' && str[i]<='z')  count1++;
    			if(str[i]>='A' && str[i]<='Z')  count2++;
    		}
    		if(str[i]=='_') count3++;
    	}
    
    	if(count1==k) puts(str);
    	if(count2==k) printf("Error!\n");
    	if(count3==k) printf("Error!\n");
    	if(count1+count2==k && count1!=0 && count2!=0)
    	{
    	    if(str[0]>='A' && str[0]<='Z') printf("Error!");
    	    else
    	    {
    	        for(i=0;i<k;i++)
                 {
    					if(str[i]>='a' && str[i]<='z')
    					{
    						printf("%c",str[i]);
    					}
    					else
    					{
    						printf("_");
    						str[i]=str[i]+32;
    						printf("%c",str[i]);
    					}
                }
    	    }
            printf("\n");
    	}
    	if(count1+count3==k && count1!=0 && count3!=0)
    	{
    	         if(str[0]=='_' || str[k-1]=='_')
    	         {
    	             printf("Error!");
    	         }
    	         else
    	         {
    	             for(i=0;i<k-1;i++)
    	                if(str[i]=='_' && str[i+1]=='_')  num++;
                    if(num!=0) printf("Error!");
    	            else
    	            {
    	                int start=0,end=0;
                        for(i=0;i<=k;i++)
    		            {
    			            if(str[i]=='_' || str[i]=='\0')
    			           {
    				        end=i;
                            for(j=start;j<end;j++)
    				        {
                                printf("%c",str[j]);
                            }
                            start=end+1;
    			            str[start]=str[start]-32;
                            }
    		            }
    	            }
    	         }
    		     printf("\n");
        }
        if(count2+count3==k && count2!=0 && count3!=0) printf("Error!\n");
        if(count1+count2+count3==k && count1!=0 && count2!=0 && count3!=0) printf("Error!\n");
    	return 0;
    }
    

     不符合条件的:当有连续下划线时;当最后一个是下划线时;当第一个是下划线时;当第一个是大写字母时;当小写、大写字母、下划线同时存在时;当大写字母下划线同时存在时。

  • 相关阅读:
    PHP中字符串和正则表达式的常用函数
    PHP基础语法
    vscode新手心得
    socket数据通讯
    PHP 登录类
    PHP Session 封装类
    php 邮箱验证函数
    PHP MySql 分页实例
    Bootstrap
    projact mail
  • 原文地址:https://www.cnblogs.com/liuzezhuang/p/2528258.html
Copyright © 2011-2022 走看看