POJ-3157-Java vs C++

来源:互联网 发布:matlab mac安装教程 编辑:程序博客网 时间:2024/06/02 07:30

算是个比较坑题吧, 虽然不算太难,但是确实很多细节需要注意

具体情况看POJ讨论版吧~

代码:

#include<cstdio>#include<cstring>#include<iostream>using namespace std;char str[1001],ans[1001];int main(){    int cas=1;    while(gets(str)!=NULL)    {    int len=strlen(str),cur=0;    bool isc=0,error=0;    for(int i=0;i<len;i++)        if(str[i]=='_')        {        isc=1;        break;        }    if(str[0]=='_'||str[0]>='A'&&str[0]<='Z')        error=1;    else    {        for(int i=0;i<len;i++)        {        if(str[i]>='A'&&str[i]<='Z')        {            if(isc)            {            error=1;            break;            }            ans[cur++]='_';            ans[cur++]=str[i]-'A'+'a';        }        else if(str[i]=='_')        {            if(i+1==len)            {            error=1;            break;            }            if(i+1<len&&!(str[i+1]>='a'&&str[i+1]<='z'))            {            error=1;            break;            }            ans[cur++]=str[i+1]-'a'+'A';            i++;        }        else if(str[i]>='a'&&str[i]<='z')            ans[cur++]=str[i];        else        {            error=1;            break;        }        }    }    ans[cur]='\0';    if(error)    {        printf("Error!\n");        continue;    }    printf("%s\n",ans);    }    return 0;}