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

本文主要是介绍把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 
  1. #include <stdio.h>   
  2. #include <string.h>   
  3. //题目以及要求:把一个字符串的大写字母放到字符串的后面,   
  4. //各个字符的相对位置不变,不能申请额外的空间。    
  5. //判断是不是大写字母    
  6. int isUpperAlpha(char c){  
  7. if(c >= 'A' && c <= 'Z'){  
  8. return 1;  
  9. }  
  10. return 0;   
  11. }  
  12. //交换两个字母    
  13. void swap(char *a, char *b){  
  14. char temp = *a;  
  15. *a = *b;  
  16. *b = temp;  
  17. }   
  18. char * mySort(char *arr, int len){  
  19. if(arr == NULL || len <= 0){  
  20. return NULL;  
  21. }  
  22. int i = 0, j = 0, k = 0;  
  23. for(i = 0; i < len; i++){  
  24. for(j = len - 1 - i; j >= 0; j--){  //比较len-1-i次,也就是比较当前位置后面的次数
  25. if(isUpperAlpha(arr[j])){  
  26. for(k = j; k < len - i - 1; k++){  
  27. swap(&arr[k], &arr[k + 1]);  
  28. }  
  29. break;  
  30. }  
  31. //遍历完了字符数组,但是没发现大写字母,所以没必要再遍历下去   
  32. if(j == 0 && !isUpperAlpha(arr[j])){  
  33. //结束;   
  34.                            return arr;  
  35. }  
  36. }  
  37. }  
  38. //over:    
  39. return arr;  
  40. }  
  41. int main(){  
  42. char arr[] = "aaaaaaaaaaaaaaaaaaaaaaaAbcAdeBbDc";  
  43. printf("%s\n", mySort(arr, strlen(arr)));  
  44. return 0;  
  45. }  

这篇关于把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765382

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Ubuntu如何分配​​未使用的空间

《Ubuntu如何分配​​未使用的空间》Ubuntu磁盘空间不足,实际未分配空间8.2G因LVM卷组名称格式差异(双破折号误写)导致无法扩展,确认正确卷组名后,使用lvextend和resize2fs... 目录1:原因2:操作3:报错5:解决问题:确认卷组名称​6:再次操作7:验证扩展是否成功8:问题已解

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文