前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字符串面试题(三)— 把一个字符串的大写字母放到字符串的后面

字符串面试题(三)— 把一个字符串的大写字母放到字符串的后面

作者头像
大黄大黄大黄
发布2018-09-14 18:10:39
1K0
发布2018-09-14 18:10:39
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/53675627

把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 例如AbcDeFGhi ->bceiADFG


基于冒泡的思想,从头开始扫描,遇到小写字母就往前面冒:

初始:AbcDeFGhi

冒’b’: bAcDeFGhi 冒’c’: bcADeFGhi 冒’e’: bceADFGhi 冒’h’: bcehADFGi 冒’i’: bcehiADFG


得到最终结果为bceiADFG

最终代码如下:

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main() {
  char s[1000], t;
  int i, j;
  while (scanf("%s", s) != EOF) {
    for (i = 1; i < strlen(s); ++i) {
      j = i;
      if ('a' <= s[i] && s[i] <= 'z')
        while (j != 0 && 'A' <= s[j-1] && s[j-1] <= 'Z') {
          t = s[j-1];
          s[j-1] = s[j];
          s[j--] = t;
        }
    }
    printf("%s\n", s);
  }
  return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年12月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档