Liny_@NotePad

沉迷ACG中

Java vs C++

YOYO posted @ 2008年11月24日 06:26 in 【ICPC】解题报告 with tags 模拟 , 1973 阅读

PKU 3157:http://acm.pku.edu.cn/JudgeOnline/problem?id=3157

 简单模拟,主要是注意error的几个错误格式。

  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.         char str[500];
  6.         while(cin>>str){
  7.                 int length = strlen(str);
  8.                 bool flag = true;
  9.                 bool cpp = false;
  10.                 bool java = false;
  11.                 char s[500];
  12.                 int i,j,n = 0;
  13.                 if(str[0]>='A'&&str[0]<='Z'||str[0]=='_'){
  14.                         flag = false;
  15.                         goto result;
  16.                 }
  17.                 j = 1;
  18.                 while(str[j]!='_'&&(!(str[j]>='A'&&str[j]<='Z')))j++;
  19.                 if(str[j]=='_'){
  20.                         cpp = true;
  21.                 }else{
  22.                         java = true;
  23.                 }
  24.                 for(i=0;i<length;i++){
  25.                         if(cpp){
  26.                                 if(str[i]=='_'){
  27.                                         i++;
  28.                                         if(i==length||str[i]>='A'&&str[i]<='Z'||str[i]=='_'){
  29.                                                 flag = false;
  30.                                                 goto result;
  31.                                         }else{
  32.                                                 s[n++]=str[i]-'a'+'A';
  33.                                         }
  34.                                 }else{
  35.                                         s[n++]=str[i];
  36.                                 }
  37.                         }else{
  38.                                 if(str[i]=='_'){
  39.                                         flag = false;
  40.                                         goto result;
  41.                                 }
  42.                                 if(str[i]>='A'&&str[i]<='Z'){
  43.                                         s[n++]='_';
  44.                                         s[n++]=str[i]-'A'+'a';
  45.                                 }else{
  46.                                         s[n++]=str[i];
  47.                                 }
  48.                         }
  49.                 }
  50.                 s[n]='\0';
  51. result:
  52.                 if(flag){
  53.                         cout<<s<<endl;
  54.                 }else{
  55.                         cout<<"Error!"<<endl;
  56.                 }
  57.         }
  58.         return 0;
  59. }

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter