首页 > 代码库 > poj 3157 Java vs C++ 模拟
poj 3157 Java vs C++ 模拟
题意:
将java和c++中的变量名相互转换,比如:long_and_mnemonic_identifier装换为longAndMnemonicIdentifier。
思路:
直接模拟遍历替换,陷阱很多。。
代码:
//poj 3157 //sep9 #include <iostream> using namespace std; char s[256],ans[256]; void deal() { int i,j; int style1=0,style2=0; for(i=0;s[i]!='\0';++i) if(s[i]=='_') style1=1; else if('A'<=s[i]&&s[i]<='Z') style2=1; if(style1+style2==2){ printf("Error!\n"); return; } for(i=0,j=0;s[i]!='\0';) if('a'<=s[i]&&s[i]<='z') ans[j++]=s[i++]; else if(s[i]=='_'){ if(s[i+1]=='\0'||i==0||s[i+1]=='_'){ printf("Error!\n"); return ; } else{ ++i; ans[j++]=s[i++]-'a'+'A'; } }else if('A'<=s[i]&&s[i]<='Z'){ if(j==0){ printf("Error!\n"); return ; } ans[j++]='_'; ans[j++]=s[i++]-'A'+'a'; }else{ printf("Error!\n"); return ; } ans[j]='\0'; printf("%s\n",ans); } int main() { while(scanf("%s",&s)==1) deal(); return 0; }
poj 3157 Java vs C++ 模拟
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。