#include <iostream>
#include <string>
using namespace std;
//谢谢博友程序
int main()
{
string a;
cin>>a;
string b;
b.reserve(300);
string c;
c.reserve(300);
if(((a[0]>='a')&&(a[0]<='z'))==0) //最前面的为小写字母
{
cout<<("Error!")<<endl;
return 0;
}
if(a[a.size()-1]=='_')//_不能在最后面
{
cout<<("Error!")<<endl;
return 0;
}
for(int i=0;i<a.size()-1;i++)//_不能连续
{
if((a[i]=='_')&&(a[i+1]=='_'))
{
cout<<("Error!")<<endl;
return 0;
}
}
//大写字母和_不能同时存在
int flag1=0;
int flag2=0;
for(int i=0;i<a.size();i++)
{
if((a[i]>='A')&&(a[i]<='Z'))
{
flag1=1;
}
if(a[i]=='_')
{
flag2=1;
}
}
if((flag1==1)&&(flag2==1))
{
cout<<("Error!")<<endl;
return 0;
}
if(flag1==1)//Java
{
for(int i=0;i<a.size();i++)
{
if((a[i]>='A')&&(a[i]<='Z'))
{
b+='_';
b+=a[i]+'a'-'A';
}else
{
b+=a[i];
}
}
cout<<b<<endl;
return 0;
}
if(flag2==1)//C++
{
for(int i=0;i<a.size();i++)
{
if(a[i]=='_')
{
i++;
c+=a[i]+'A'-'a';
}else
{
c+=a[i];
}
}
cout<<c<<endl;
return 0;
}
if((flag1==0)&&(flag2==0))//i
{
cout<<a<<endl;
}
return 0;
}
以_分隔单词与以首字母大写分隔单词的格式之间相互转换。