zoukankan      html  css  js  c++  java
  • Java vs C++

    题目描述

    Java和C++两种语言的辩手都可以相互争论数小时去证明他们的编程语言是最好的。用Java的人将告诉人们,他们的程序更加清楚且不容易犯错,而用C++的人会嘲笑他们没有能举出有代表性的实例来证明他们的观点,或者告诉他们Java的程序运行速度慢而且源代码太长。

    另一个问题是,用Java和C++的人永远无法在标识符的命名上取得共识。在Java中,由多个单词组成的标识符的命名规则如下:第一个单词是以小写字母开头,接下来的每一个单词以大写字母开头,分隔符是不允许使用的。其他所有的字母都是小写的。下面举出一些例子:javaIdentifier,longAndMnemonicIdentifier,name,nEERC。

    而在C++中,人们只用小写字母来命名标识符。他们运用下划线“_”来分隔单词。下面举出一些例子:c_identifier,long_and_mnemonic_identifier,name(当只有1个单词时,用Java和C++的人是统一的),n_e_e_r_c。

    你需要写一个程序来相互翻译Java和C++的程序。当然了,翻译后的标识符必须符合它的命名规则,否则人们不会认同你的翻译。

    给你一个标识符,它可能会是Java或者C++标识符中的一种,而你需要将其翻译成另一种。如果这个标识符既不是Java标识符也不是C++标识符,你的程序需要报告错误。翻译必须符合规范,所以就需要改变字母大小写或者添加、删除下划线。

    输入

    输入文件1行,包含一个标识符。标识符由大小写字母和下划线组成,长度不会超过100。

    输出

    如果输入的是Java标识符,输出应该为C++标识符;反之亦然。如果输入既不是Java标识符,也不是C++标识符,则输出“Error!”。

    样例输入

    long_and_mnemonic_identifier

    样例输出

    longAndMnemonicIdentifier

    提示

    代码

    #include<bits/stdc++.h>
    using namespace std;
    char s[1001];
    string a[1001];
    int n=1,len,type;
    bool flag;
    int main()
    {
        scanf("%s",s);
        len=strlen(s);
        if((s[0]>='A'&&s[0]<='Z')||s[0]=='_'||s[len-1]=='_')
        {
            printf("Error!");
            return 0;
        }
    //  for(int i=0;i<len;i++)
    //      if(s[i]=='_'&&!(s[i+1]>='A'&&s[i+1]<='Z'))
    //          flag=1;
        for(int i=0;i<len;i++)
            if(s[i]=='_') 
            {
                if((i!=0&&s[i-1]=='_')||type==1)
                {
                    flag=1;
                    break;
                }
                type=2,n++;
            }
            else
                if(s[i]>='A'&&s[i]<='Z') 
                {
                    if(type==2)
                    {
                        flag=1;
                        break;
                    }
                    type=1,n++,a[n]+=(s[i]+32);
                }
            else
                a[n]+=s[i];
        if(flag==1)
        {
            printf("Error!");
            return 0;
        }
        else
        {
            if(type==1||type==0)
            {
                for(int i=1;i<n;i++)
                    printf("%s_",a[i].c_str());
                printf("%s",a[n].c_str());
            }
            else
            {
                printf("%s",a[1].c_str());
                for(int i=2;i<=n;i++)
                {
                    printf("%c",a[i][0]-32);
                    int ll=a[i].length();
                    for(int j=1;j<ll;j++)
                        printf("%c",a[i][j]);
                }
            }
        }   
        return 0;
    }
  • 相关阅读:
    CDN网络(二)之配置和优化CDN核心缓存软件--squid
    CDN网络(一)之典型的CND架构与HTTP协议的缓存控制
    http+mysql结合keepalived做热备
    网络存储(四)之ISCSI的进阶
    Nginx系列3之Nginx+tomcat
    Nginx系列2之Nginx+php
    Nginx系列1之部分模块详解
    网络存储(三)之ISCSI搭建的入门
    网络存储(二)之ISCSI原理
    Testing
  • 原文地址:https://www.cnblogs.com/LJA001162/p/13124793.html
Copyright © 2011-2022 走看看