字符串的替换【骆驼命名法】(小写转大写)以及字符串倒序排序【单词倒排】


从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;
    }
}
发布了119 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/tangya3158613488/article/details/96192442