字符串排序
2015-07-29 14:44
281 查看
描述: | 编写一个程序,将输入字符串中的字符按如下规则排序。 规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb 规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:Be?y 样例: 输入: A Famous Saying: Much Ado About Nothing(2012/8). 输出: A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8). |
知识点: | 字符串,排序 |
题目来源: | 内部整理 |
练习阶段: | 中级 |
运行时间限制: | 10Sec |
内存限制: | 128MByte |
输入: | |
输出: | |
样例输入: | A Famous Saying: Much Ado About Nothing (2012/8). |
样例输出: | A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8). |
答案提示: | #include <iostream> #include <string> using namespace std; bool Is_Alpha(char a) { if((a>='a' && a<='z') || (a>='A' && a<='Z')) return true; else return false; } void sort_string(string a) { size_t i=0; size_t j=0; size_t k; char temp; for(i=0; i<a.size(); i++) { for(j=0; j<a.size()-i-1; j++) { if(Is_Alpha(a[j])==false) continue; k=j+1; while((Is_Alpha(a[k])==false) && k<a.size()) { k++; } if(k==a.size()) { continue; } if(tolower(a[k])<tolower(a[j])) { temp=a[j]; a[j]=a[k]; a[k]=temp; } } } cout<<a<<endl; } int main() { string str; getline(cin,str); sort_string(str); return 0; } |
相关文章推荐
- C语言分支结构语句if-else语句
- Linux进程使用内存的基本流程---Linux用户进程是如何释放内存的
- 安卓开发数据库篇
- 计算IE的旋转角度与滤镜
- 学习笔记:linuxc第七章—进程控制 下篇
- jquery的DOM元素操作
- 57. Insert Interval
- iPhone应用程序开发基础之一: IBOutlet与IBAction
- 自动化测试总结
- android+Python socket
- DataProvider不等于SQLHelper
- 什么是流媒体技术
- objectARX错误处理函数
- Redis 和 Jedis
- FMDBModel使你的实体类具备直接操作数据库的功能
- zoj 2112 Dynamic Rankings (动态主席树)
- 判断decimal 是否为整数
- css3鼠标状态
- 查看 python安装目录
- javascript字符串函数