日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【2012百度之星/资格赛】E:C++ 与Java

發(fā)布時間:2024/7/19 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【2012百度之星/资格赛】E:C++ 与Java 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
時間限制:2000ms?????? 內(nèi)存限制:65536kB 描述

在百度之星的貼吧里面,Java的愛好者和C++的愛好者總是能為這兩種語言哪個更好爭論上幾個小時。Java的愛好者會說他們的程序更加整潔且不易出錯。C++的愛好者則會嘲笑Java程序很慢而且代碼很長。
另一個Java和C++愛好者不能達成一致的爭論點就是命名問題。在Java中一個多個單詞構(gòu)成的變量名應該按照如下格式命名:第一個單詞的開頭用小寫字母,其余單詞都以大寫字母開頭,單詞與單詞之間不加分隔符,除單詞的首字母之外的字母一律使用小寫。例如:javaIdentifier, longAndMnemonicIdentifier, name, bAIDU.
與Java不同C++的命名全都使用小寫字母,在單詞和單詞之間使用“_”來作為分隔符。例如:c_identifier, long_and_mnemonic_identifier, name (當名字中只有一個單詞的時候,Java與C++的命名是相同的), b_a_i_d_u.
你的任務就是寫一個程序能讓C++和Java程序相互轉(zhuǎn)化。當然轉(zhuǎn)換完成的程序中的變量名也要符合其語言的命名規(guī)則,否則的話是不會有人喜歡你的轉(zhuǎn)換器的。
首先你要做的就是寫一個變量名轉(zhuǎn)換器。給出一個變量名,你要先檢測是Java的還是C++的,然后把它轉(zhuǎn)化為另一種命名格式。如果兩種都不是,那么你的程序就要報錯。轉(zhuǎn)換過程必須保持原有的單詞順序,只能改變字母的大小寫和增加或刪除下劃線。

輸入
輸入有且僅有一行,是一個變量名,其中包含字母和下劃線,長度不超過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!

實現(xiàn)代碼:

#include<iostream> #include<cstdio> using namespace std; #include<string.h>char str[104]; int main(void) {int i,len;bool low,hua,valid;while(scanf("%s",str)!=EOF){len=strlen(str);low=true , hua=false , valid=true;for(i=0;str[i]!='\0';++i){if(str[i]>='A' && str[i]<='Z')low=false; //JAVAif(str[i]=='_')hua=true; //C++}for(i=0;str[i]!='\0';++i){if(i+1<len && str[i]=='_' && str[i+1]=='_')valid=false; //C++}if(str[0]=='_' || str[len-1]=='_')valid=false; //非法if(str[0]>='A' && str[0]<='Z')valid=false; //非法if( (hua && low && valid) || (low && !hua && valid) ) //C++{for(i=0;str[i]!='\0';++i){if(i>1 && str[i]>='a' && str[i]<='z' && str[i-1]=='_')printf("%c",str[i]-32);else if(str[i]>='a' && str[i]<='z')printf("%c",str[i]);}printf("\n");}else if(hua==false && !low && valid) //JAVA{for(i=0;str[i]!='\0';++i){if(str[i]>='a' && str[i]<='z')printf("%c",str[i]);if(i+1<len && str[i]>='a' && str[i]<='z' && str[i+1]>='A' && str[i+1]<='Z'){str[i+1]+=32;printf("_");}}printf("\n");}elseputs("Error!");}return 0; } 特別提示:注意處理第一個位置和最后一個位置處的_,和第一個位置處的大寫字母以及字符串中連續(xù)的 __ 處理情況。


總結(jié)

以上是生活随笔為你收集整理的【2012百度之星/资格赛】E:C++ 与Java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。