我是靠谱客的博主 犹豫板栗,最近开发中收集的这篇文章主要介绍虾皮笔试: 将表达式转化为驼峰 c++版,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 驼峰转换,已经ac的。就写了这一道

题目:

输入:hello_world_hello_world     输出:helloWorldHelloWorld

           __UPPER__CASE__         输出:upperCase

            This is demo!                     输出:thisIsDemo

#include<bits/stdc++.h>
//万能头文件
using namespace std;
string fun(string str)
{
string reslut=str;
for(int i=0;i<str.size();i++)
{
if(isupper(reslut[i]))
{
reslut[i]= tolower(reslut[i]);//全部小写
}
}
//现在,reslut中全是小写
string res="";
bool flag= false;
//定义一个flag,做标记
for(size_t i = 0 ;i<reslut.size();++i)
{
//检测 __ _
//hello_world_hello_world
//__UPPER__CASE__
if(reslut[i] == '_' )
{
if(reslut[i+1] !='_' )
//看看后面是不是字母或者数字 ,
{
flag=true;
}
continue;
}
//检测 " " 空格
else if(reslut[i] == ' ' )
{
if(reslut[i+1] !=' ' )
{
flag=true;
}
continue;
}
//检测其他字符 非数字和字母
else if (!isalnum(reslut[i]))
{
if(isalnum( reslut[i+1]) )
{
flag=true;
}
continue;
}
//只要上面的标志被改了,我们就要将第一个字母大写
if(flag)
{
reslut[i]=toupper(reslut[i]);
flag=false;
}
//用res变量获得结果
res+=reslut[i];
}
//这一步是处理最后一个是否是其他 字符
This is a Demo!
int size = res.size()-1;
if(!isalnum(res[size]))
{
res.erase(size);
}
//处理第一个字符,不管是啥,都给他转为小写
res[0] = tolower( res[0]);
return res;
}
int main()
{
string str;
while(getline(cin,str)) //接受一行输入
{
string result = fun(str);
cout<<result<<endl;
}
}

 

最后

以上就是犹豫板栗为你收集整理的虾皮笔试: 将表达式转化为驼峰 c++版的全部内容,希望文章能够帮你解决虾皮笔试: 将表达式转化为驼峰 c++版所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部