面试题4:替换空格

提交网址: http://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155

参与人数:10327 时间限制:1秒 空间限制:32768K
本题知识点:字符串

题目描述

请实现一个函数void replaceSpace(char *str,int length),将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

分析:

AC代码

文件名: AimedAtOffer-replaceSpace.cpp

#include<iostream>
#include<string>
#include<cstdio>
using namespace std; class Solution{
public:
void replaceSpace(char *str, int length)
{
if(str==NULL || length<=0) return; int newlen=0;
int spaceCount = 0;
int idx;
for(idx = 0; str[idx] != '\0'; idx++)
{
if (str[idx] == ' ')
{
spaceCount++;
}
}
newlen = idx + 2*spaceCount;
if(newlen > length) return;
str[newlen]='\0'; //此行很关键
int frontCur = idx - 1, backCur = newlen-1;
for(; frontCur >= 0 && backCur > frontCur; frontCur--)
{
if (str[frontCur] == ' ')
{
str[backCur--] = '0';
str[backCur--] = '2';
str[backCur--] = '%';
}
else str[backCur--] = str[frontCur];
}
}
}; // 以下为测试部分
/*
int main()
{
Solution sol;
char str[]="Hello World, haha";
sol.replaceSpace(str, 20);
// printf("%s\n",str);
cout<<str<<endl;
return 0;
}
*/

最新文章

  1. [LeetCode] Maximum Gap 求最大间距
  2. 聊聊 C 语言中的 sizeof 运算
  3. scrapy的scrapyd使用方法
  4. 【CodeVS】1204 寻找字串位置
  5. Visual Studio 2015 社区版.专业版.企业版[含安装密钥Pro&amp;Ent]
  6. 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍
  7. Oracle 建表常用数据类型的详解
  8. (转) Python in NetBeans IDE 8.0
  9. information_schema.column_privileges 学习
  10. 对WEB标准以及W3C的理解与认识 - 提高网页加载速度
  11. 在docker container中运行docker-compose
  12. Mac之OS系统下搭建JavaEE环境 &lt;一&gt; 之JDK的安装配置
  13. U68364 _GC滑迷宫
  14. Collection和Map类图预览与比较
  15. JQuery POST请求封装
  16. python学习(十)
  17. 【洛谷P3600】 随机数生成器
  18. rpm打包tomcat
  19. Java实现五子棋
  20. SpringMVC详细示例实战教程(较全开发教程)

热门文章

  1. LNMP支持 多版本PHP
  2. 移动 web 适配
  3. 浅谈React数据流管理
  4. Javascript中表达式和语句的区别
  5. css3用到知识点小结
  6. Redis sentinel之集群搭建
  7. 汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等
  8. Python学习过程中各个难点---数据类型篇
  9. 我人生做过的第一个信息化项目--TIPTOP 5.0 ERP项目
  10. #224 Profile Lookup (for in &amp; if )