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

2023-11-10

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

题目以及要求:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 

我的实现类似冒泡排序。

代码为:

#include<stdio.h>
#include<string.h>

int isUpperAlpha(char c){
	if(c>='A' && c<='Z'){
		return 1;
	}
	return 0;
}

void swap(char *a,char *b)
{
  char temp=*a;
  *a=*b;
  *b=temp;
}

char *Sort(char *arr,int len)
{
  if(arr==NULL || len<=0)
  {
    return NULL;
  }
  int i=0,j=0,k=0;
  for(i=0;i<len;i++){
	  for(j=len-1-i;j>=0;j--){
		  if(isUpperAlpha(arr[j])){
			  for(k=j;k<len-i-1;k++){
				  swap(&arr[k],&arr[k+1]);
			  }
			  break;//退出该层for循环,进入外层for循环
		  }
		  if(j==0 && !isUpperAlpha(arr[j])){ //遍历完了字符数组,但没有发现大写字母,所以没有必要遍历下去了。
			  return arr;
		  }
	  }
  }
  return arr;
}

int main(){
	char arr[]="aabdfcDDrFdFdDdd";
	printf("%s\n",Sort(arr,strlen(arr)));
	return 0;
}

参考:  http://blog.csdn.net/wypblog/article/details/8030317



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间 的相关文章

  • 常用的传输媒体有哪些,各有什么特点

    常见的传输媒体有以下几种 1 双绞线 双绞线分屏蔽双绞线和无屏蔽双绞线 由两根相互绝缘的导线组成 可以传输模拟信号 也可以传输数字信号 有效带宽达250kHz 通常距离一般为几道十几公里 导线越粗其通信距离越远 在数字传输时 若传输速率为每
  • eterm系统服务器地址,Eterm管理系统

    Eterm管理系统提供用户管理 PID管理 分组管理 角色管理 指令管理等功能 可以帮助用户管理自己的设备 适合企业使用 企业可以在软件添加多种设备到软件管理 可以分组管理不同的网络设备 可以为管理员设置账户 可以在软件编辑控制设备的指令
  • C语言代码静态检查学习笔记(结尾有惊喜)

    静态检查 静态分析的概念 定义 程序静态分析是指在不运行代码的方式下 通过各种分析工具对程序代码进行扫描并做出评估的过程 特点 不实际执行程序 只是通过对代码的静态扫描对程序进行分析 执行速度快 效率高 静态分析技术 类型检查 风格检查 风
  • QT QChart使用基本常识

    效果图 准备工作 ui添加QGraphicsView 提升为QChartView 命名graphicsView 接口和变量声明 QChart chart QXYSeries series1 QXYSeries series2 QXYSeri

随机推荐

  • 分层测试:什么是分层测试?(详解)

    1 什么是分层测试 分层测试是通过对质量问题分类 分层来保证整体系统质量的测试体系 模块内通过接口测试保证模块质量 多模块之间通过集成测试保证通信路径和模块间交互质量 整体系统通过端到端用例对核心业务场景进行验证 用户体验通过手工测试确保无
  • pyecharts 安装报错 ModuleNotFoundError: No module named ‘pyecharts_snapshot‘

    1 出错原因 因为用下面语句安装pyecharts时 默认会安装最新版本的pyecharts python解释器版本更新的速度慢很多 现在的python解释器默认的是与0 1 9 4版本的pyecharts配合 你安装最新的 python解
  • MyBatis笔记(2):CRUD操作及配置解析/狂神说

    目录 0 写在前面 1 Select 1 1 需求 根据id查询用户 1 2 课堂练习 根据 密码 和 名字 查询用户 2 insert 3 Update 4 delete 5 模糊查询like语句该怎么写 6 配置解析 6 1 envir
  • django报错 No module named 'MySQLdb'

    环境 anaconda3 python3 7 django2 2 mysql5 7 在运行python manage py makemigrations appxxx时报错 No module named MySQLdb 网上有方案说改源码
  • Java压缩包制作遗留问题解决

    本文衔接上篇JDK压缩包制作环境配置 在环境配置好后 在DOS命令窗口会发现Java依旧无法运行 提示安装没成功 报错 Error occurred during initialization of VM java lang NoClass
  • 什么是集线器

    集线器 英文名又称Hub 在OSI模型中属于数据链路层 价格便宜是它最大的优势 但由于集线器属于共享型设备 导致了在繁重的网络中 效率变得十分低下 所以我们在中 大型的网络中看不到集线器的身影 如今的集线器普遍采用全双工模式 市场上常见的集
  • 哄女朋友玩的c语言编程,哄女朋友开心的小套路 逗女朋友开心的话套路

    不会玩小编为大家收集整理了哄女朋友开心的小套路 以及逗女朋友开心的话套路如果觉得不错就请收藏一下 下面咱们一起来看一下吧 1 你属什么 虎 不 你属于我 2 想让你爸妈开心吗 想啊 想就带我回家 3 我觉得所有的门都应该让你敲 为什么这么说
  • 通过配置浏览器方式解决跨域问题

    复制桌面上的谷歌浏览器快捷方式 名称改为 Google Debug 浏览器快捷图标 鼠标右键 属性 目标项的最后面 空格 然后加入下面配置 user data dir c ChromeDebug test type disable web
  • java接口回调

    接口回调 我们可以先定义一个接口 比如接口叫usb 然后再定义接口的实现者 如U盘 鼠标 风扇 接口的使用者 如电脑 测试类 Java是一门面向对象语言 一切皆对象 因此在Java中不存在回调函数这一说法的 由于Java的一切皆对象性质 从
  • FPGA时钟电路PCBlayout设计原则

    1 时钟晶振源应该尽可能放在与其连接的FPGA时钟专用引脚的临近位置 2 时钟线尽可能走直线 如果无法避免转弯走线 则使用45度线 尽量避免T型走线和直角走线 3 不要同时在多个信号层走时钟线 4 时钟走线不要使用过孔 因为过孔会导致阻抗变
  • 前端web3入门脚本二:初探dex,在dex完成一笔swap

    前言 现在市面上大多数去中心化交易所 简称dex 都是fork的uniswap的代码 名气比较大的如eth上的sushi 以及 bsc上的pancake 博主这里说的都是V2 uniswapV3在这里不做讨论 那么知道了他们的代码都是来自同
  • 出租车GPS数据处理

    提取出租车订单的OD 从大量的GPS信息中提取出每个出租车订单的起点和终点 数据是出租车GPS的散点时空数据 散点时间间隔大概在15s 取决于GPS的采样频率 因此要提取出乘客出行的OD信息 首先要定义乘客的上车时点 下车时点选取标准 然后
  • JAVA学习之路以及第一次项目实战心得

    JAVA学习之路以及第一次项目实战心得 前言 今天是2023年4月24日 突发奇想想写一篇学习心得 因为以前光顾着一直赶进度学习java 没有总结 也就不知道自己的哪些地方还有缺陷 还需要提高 如何接触到java和学习过程 我是在2021年
  • 江苏省人力资源社会保障厅 省职称办 关于做好2021年度职称评审工作的通知

    各设区市人力资源社会保障局 昆山市 泰兴市 沭阳县人力资源和社会保障局 省各有关厅局人事 职称 部门 各有关企事业单位 社会组织 根据中央和省关于深化职称制度和人才评价机制改革精神 按照 职称评审管理暂行规定 人力资源和社会保障部令第40号
  • uniapp使用中出现的问题

    1 真机调试时 运行到手机 手机显示 本应用无法独立运行 需与HBuilderX搭配使用 我这里是window系统电脑连接到安卓手机 如下图 以上两个图片分别是手机和电脑显示的信息 手机和电脑就一直这样显示 就没然后了 处理方法 升级最新H
  • HTTPS 原理详解

    转自 https baijiahao baidu com s id 1570143475599137 wfr spider for pc 前言 HTTPS 全称 HyperText Transfer Protocol over Secure
  • 计算机中cat是什么命令,cat(操作系统命令)_百度百科

    本词条缺少概述图 补充相关内容使词条更完整 还能快速升级 赶紧来编辑吧 cat是操作系统命令的名称 cat命令在Unix和类Unix系统中是英语单词concatenate 意思都是连接 的缩写 作用是显示或连接多个文本文件 在Apple P
  • 无向图

    概念轰炸 图是由一组顶点和一组能够将两个顶点连接的边组成的 x y表示x到y的一条边 一条连接一个顶点和其自身的边称为自环 连接同一对顶点的两条边称为平行边 含有平行边的图称为多重图 某个顶点的度数即为依附于它的边的总数 当两个顶点通过一条
  • python之调用ffmepg实现mp3比特率修改

    效果 D python projects python learning python aduio gt ffmpeg i WELBOX mp3 b a 32k WELBOX 1 mp3 ffmpeg version 4 3 1 2020
  • 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间

    把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 题目以及要求 把一个字符串的大写字母放到字符串的后面 各个字符的相对位置不变 不能申请额外的空间 我的实现类似冒泡排序 代码为 include