2017-A
2017-A
题目描述:
输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开。
例:
输入 12abc3KF12
输出 abc KF 12 3 12
输入 rwr21r3hello666world
输出 rwr r hello world 21 3 666
题解:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
string s;
cin>>s;
char s1[100];//存放小写字母
char s2[100];//存放大写字母
char s3[100];//存放数字
int n1=0,n2=0,n3=0;
for(int i=0;i<s.length();i++)
{
if(s[i]>='a' && s[i]<='z')//先判断该字符是否属于a~z
{//若属于a~z
if(i==0)//如果是输入字符串的第一个元素直接存入结果
{
s1[n1++]=s[i];
}
else //如果不是第一个元素,则需要判断前驱元素是否是同一类型的元素
{
if(s[i-1]>='a' && s[i-1]<='z')//若前驱元素是同一类型的元素
{
s1[n1++]=s[i]; // 将当前元素压入结果
}
else //若前驱元素不是同一类型的元素 ,即同种类字符间由不同种类的字符
{
s1[n1++]=' '; //则输出后也要用字符隔开
s1[n1++]=s[i]; //隔开后再将当前元素压入结果,相当于另起一段
}
}
}
if(s[i]>='A' && s[i]<='Z')
{
if(i==0)
{
s2[n2++]=s[i];
}
else
{
if(s[i-1]>='A' && s[i-1]<='Z')
{
s2[n2++]=s[i];
}
else
{
s2[n2++]=' ';
s2[n2++]=s[i];
}
}
}
if(s[i]>='0' && s[i]<='9')
{
if(i==0)
{
s3[n3++]=s[i];
}
else
{
if(s[i-1]>='0' && s[i-1]<='9')
{
s3[n3++]=s[i];
}
else
{
s3[n3++]=' ';
s3[n3++]=s[i];
}
}
}
}
for(int i=0;i<n1;i++) cout<<s1[i];
cout<<" ";
for(int i=0;i<n2;i++) cout<<s2[i];
cout<<" ";
for(int i=0;i<n3;i++) cout<<s3[i];
system("pause");
return 0;
}
2017-A的更多相关文章
- CI Weekly #10 | 2017 DevOps 趋势预测
2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...
- 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS
一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ...
- iOS的ATS配置 - 2017年前ATS规定的适配
苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- Xamarin+Prism开发详解三:Visual studio 2017 RC初体验
Visual studio 2017 RC出来一段时间了,最近有时间就想安装试试,随带分享一下安装使用体验. 1,卸载visual studio 2015 虽然可以同时安装visual studio ...
- Microsoft Visual Studio 2017 for Mac Preview 下载+安装+案例Demo
目录: 0. 前言 1. 在线安装器 2. 安装VS 3. HelloWorld 4. ASP.NET MVC 5. 软件下载 6. 结尾 0. 前言: 工作原因,上下班背着我的雷神,一个月瘦了10斤 ...
- Create an offline installation of Visual Studio 2017 RC
Create an offline installation of Visual Studio 2017 RC 2016年12月7日 ...
- .NET Core 2.0版本预计于2017年春季发布
英文原文: NET Core 2.0 Planned for Spring 2017 微软项目经理 Immo Landwerth 公布了即将推出的 .NET Core 2.0 版本的细节,该版本预计于 ...
- 卡巴斯基2017激活教程_卡巴斯基2017用授权文件KEY激活的方法
原创:天诺时空 更新时间:2016-11-09 2016年9月7日,卡巴斯基2017版全新上市,卡巴斯基依旧为大家奉上满足您所有需求的安全软件产品,为不同年龄层.不同人群给予全方位保护,同时延续卡 ...
- 2016总结&2017计划
2016总结 总体而言,上半年比较勤快,下半年偷懒了.下半年仔细看了Barfoot的书<state estimation for robotics>,收获很大. 2017计划 目前打算写以 ...
随机推荐
- 【python基础】复杂数据类型-列表类型(排序/长度/遍历)
1.列表数据元素排序 在创建的列表中,数据元素的排列顺序常常是无法预测的.这虽然在大多数情况下都是不可避免的,但经常需要以特定的顺序呈现信息.有时候希望保留列表数据元素最初的排列顺序,而有时候又需要调 ...
- 聊聊JVM虚方法表和方法调用
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.源码解析.科技故事.项目实战.面试八股等更多硬核文章,首发于公众号「小牛呼噜噜」 大家好,我是呼噜噜,好久没更新文 ...
- RabbitMQ升级过程以及问题解决
1.卸载MQ 如果安装过MQ需先彻底卸载ERlangOTP与rabbitMQ,卸载步骤如下 1. 停止RabbitMQ服务 2. 在控制面板中卸载Erlang与RabbitMQ 3. 删除C:\ ...
- 基于JavaFX的扫雷游戏实现(三)——交互逻辑
相信阅读过上期文章,动手能力强的朋友们已经自己跑出来界面了.所以这期我要讲的是交互部分,也就是对于鼠标点击事件的响应,包括计时计数对点击事件以及一些状态量的影响. 回忆下第一期介绍的扫雷规则和 ...
- 深入JS——理解闭包可以看作是某种意义上的重生
JS中有一个非常重要但又难以完全掌握的概念,那就是闭包.很多JS程序员自以为已经掌握了闭包,但实质上是一知半解,就像"JS中万物皆为对象"这个常见的错误说法一样,很多前端开发者到现 ...
- 【技术积累】Java中的常用类【一】
Math类 Math类是Java中的一个数学工具类,提供了一系列常用的数学方法.下面是Math类的常用方法及其案例: abs() 返回一个数的绝对值. int num = -10; int absNu ...
- 飞桨paddlespeech语音唤醒推理C定点实现
前面的文章(飞桨paddlespeech语音唤醒推理C浮点实现)讲了飞桨paddlespeech语音唤醒推理的C浮点实现.但是嵌入式设备通常CPU频率低和memory小,在嵌入式设备上要想流畅的运行语 ...
- C#中DataTable的一些使用(后续继续补充)
C#中DataTable的一些使用 新建一个DataTable DataTable table = new DataTable(); table.Columns.Add("姓名", ...
- quarkus实战之四:远程热部署
将本地的改动极速同步到远程服务端,并自动生效,掌握此技能,开发调试会更高效 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/ ...
- linux top中 VSS,RSS,PSS,USS 4个字段的解读
参考文章:linux中top命令 VSS,RSS,PSS,USS 四个内存字段的解读