从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。
请你帮可怜的程序员们自动转换变量名。
输入
hello_world nice_to_meet_you
输出
helloWorld niceToMeetYou
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
while(cin>>s)
{
string res;
int i=0;
int pos=0;
while(pos!=-1)
{
pos=s.find("_",i);
if(pos!=-1)
{
res += s.substr(i,pos-i);
i=pos+1;
if(i<s.size() && (s[i]>='a' && s[i]<='z'))
{
res += s[i]-32;
i++;
}
}
}
res += s.substr(i,s.size()-i);
cout<<res<<endl;
}
}
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
输入
I am a student
输出
student a am I
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string s;
while(getline(cin,s))
{
vector<string> v;
v.clear();
string temp="";
for(int i=0;i<s.size();i++)
{
if(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z')
{
temp += s[i];
}
else
{
if(temp.size()>0)
{
v.push_back(temp);
temp="";
}
}
}
if(temp.size()>0)
{
v.push_back(temp);
}
for(int i=v.size()-1;i>0;--i)
{
cout<<v[i]<<' ';
}
cout<<v[0]<<endl;
}
}