为什么我这样写不对呢。感觉调试 脑壳都调晕了。。。 思路: 1、将不是英文额字母的字符排除在排序之外原样放置 2、在进行排序的时候如果是英文字母,统一转换成小写来进行比较,这样如果遇到相同字母的大小写 就不会出现位置变换了 */ string str; while(getline(cin, str)) { int len = str.size(); for(int i = 0; i < len; i++) { for(int j = i + 1; j < len; j++) { char A = str[i]; char B = str[j]; //判断如果两个字符都是字母 才进行大小比较 if(((A >= 'A' && A <= 'Z') || (A >= 'a' && A <= 'z')) && ((B >= 'A' && B <= 'Z') || (B >= 'a' && B <= 'z'))) { //如果字母是大写就转为小写 后面统一用小写字母进行比较 if(A >= 'A' && A <= 'Z') { A += 32; } if(B >= 'A' && B <= 'Z') { B += 32; } if(A > B) { char t = str[j]; str[j] = str[i]; str[i] = t; } } } } cout << str << endl; }
点赞

相关推荐

不愿透露姓名的神秘牛友
07-07 13:15
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务