题目:

请实现一个函数,把字符串中的每个空格替换成“%20"。例如输入"We are happy", 则输出"We%20are%20happy"。

代码实现:

void ReplaceBlankWithSpecialChar(char* pData, int totalCount)
{if (nullptr == pData || totalCount < 1) return;int useCount = 0; // 已使用数量int blankCount = 0; // 空格数量for (int idx = 0; idx < totalCount; ++idx){if (pData[idx] == '\0') break;if (pData[idx] == ' ') ++blankCount;++useCount;}if (0 == blankCount) return; // 无空格if (totalCount - (useCount + 1/*加上/0*/) < blankCount * 2) return; // 没有多余空间容纳%20char* pFrontData = pData + useCount;char* pBackData = pFrontData + blankCount * 2;while (pBackData != pFrontData){while (*pFrontData != ' '){*pBackData = *pFrontData;--pBackData;--pFrontData;}--pFrontData;*pBackData-- = '0';*pBackData-- = '2';*pBackData-- = '%';}
}

04. 替换空格(C++版本)相关推荐

  1. 【剑指offer-Java版】04替换空格

    给定字符串将其中的空格替换掉 例如:we are happy -> we%20are%20happy 也就是字符数组中的一个空格字符被替换成了三个字符 由于给定数组,就可以确定替换后每个字符的位 ...

  2. 《剑指offer》c++版本 5.替换空格

    如题: 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之 后的字符串为We%20Are%20Happy. 这道题难度 ...

  3. 力扣-图解算法数据结构-剑指 Offer 05. 替换空格

    题目要求 力扣题解 代码 /*** @program: mydemo* @description: 剑指 Offer 05. 替换空格* @author: Mr.zeng* @create: 2021 ...

  4. Ubuntu实现kiftd开机自启动(适用于Ubuntu 16.04或更高版本)

    本文提要 对于 Ubuntu 16.04或更高版本的Ubuntu系统 而言,实现程序开机自启动的最佳方案无疑是借助新加入的"systemd"功能来实现,这也是Ubuntu官方推荐的 ...

  5. 代码随想录算法训练营第08天 | LeetCode 344.反转字符串,541. 反转字符串2,剑指Offer 05.替换空格,151.翻转字符串里的单词,剑指Offer58-II.左旋转字符串

    LeetCode [344. 反转字符串] 题目:编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 s 的形式给出. 不要给另外的数组分配额外的空间,你必须**原地修改输入数组**. ...

  6. 剑指offer:面试题05. 替换空格

    题目:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 输入:s = "We are happy." 输出:"We%20are% ...

  7. URL化 替换空格

    URL化 替换空格 编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度. 示例 1: 输入:"Mr J ...

  8. 替换空格---StringBuilder

    问题:替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy." 输出:"We% ...

  9. Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15

    Open vSwitch(OVS)源码编译Ubuntu16.04,Linux内核版本4.15 关于Open vSwitch(OVS)版本与Linux内核的关系,参考这篇文章:Open vSwitch( ...

  10. 字符串一:替换空格()

    /**  * 题目:替换空格()  * 描述:请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Ar ...

最新文章

  1. python3 异步错误 asyncio.Semaphore RuntimeError: Task got Future attached to a different loop
  2. mysql 有always on么,mysql 关于时间类型的刨坑之路
  3. NYOJ 171 聪明的kk
  4. Redis Cluster集群模式
  5. maven 学习---Maven本地资源库
  6. 歪枣网数据库设计-千万级别海量数据查询效率优化
  7. 公司绝不会告诉你的20大秘密
  8. ws2812 c语言程序,STC15单片机驱动WS2812B七彩LED(汇编混合编程)
  9. 【深度强化学习】A3C
  10. UE4-(光照)光照贴图
  11. 沈航-数理统计-17-18B-有答案
  12. 自动化面试问题及答案_普遍的基本收入是自动化的答案
  13. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)
  14. JAVA中pin什么意思_pin是什么意思用法
  15. 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册
  16. kettle EXCEL 累计输出数据
  17. 股票API之----------雅虎财经频道
  18. 云平台的成本优化-提升资源利用率
  19. xml文件拆分 python_使用Python解析大型拆分XML文件
  20. 批量提取文件名到excel,批量提取文件名到excel表格

热门文章

  1. C++工业设备日志记录系统
  2. ComponentOne 2018V2正式发布,提供轻量级的 .NET
  3. 【cocos2d-x 3.7 飞机大战】 决战南海I (三) 敌机实现
  4. Springboot集成通用Mapper与Pagehelper,实现mybatis+Druid的多数据源配置
  5. Window下本地redis的安装、配置以及java版试用
  6. [PHP] PHP+MYSQL留言板制作
  7. notesDocument类的HTTP URL属性 和note URL属性的区别
  8. 《那些花儿》范玮琪版
  9. 9.凤凰架构:构建可靠的大型分布式系统 --- 可靠通信
  10. 8.企业安全建设指南(金融行业安全架构与技术实践) --- 安全考核