剑指offer-0x04
2016-03-29 23:36
302 查看
#include <iostream> using namespace std; void ReplaceBlank(char str[], int length) { if(str == NULL || length<=0) return; int originalLength = 0; int numofBlank = 0; int i = 0; //计算原字符串的长度,并统计空格个数 while(str[i]!= '\0') { originalLength ++; if(str[i] == ' ') numofBlank ++; i++; } //每替换一个空格,长度增加2 int newlength = originalLength + numofBlank * 2; if(newlength>length) return; int indexofOriginal = originalLength; int indexofNew = newlength; while(indexofOriginal>=0 && indexofNew>indexofOriginal) { if(str[indexofOriginal]==' ') { str[indexofNew--]='0'; str[indexofNew--]='2'; str[indexofNew--]='%'; } else str[indexofNew--]=str[indexofOriginal]; indexofOriginal--; } } int main() { char str[]="hello world hello c++"; ReplaceBlank(str,100); cout << "result is "<< str<<endl; return 0; }
相关文章推荐
- Canva(设计图片)
- javascript表单事件
- 1-1-JS中的HTML属性操作
- JSCH专题
- android与html5的交互——数据库操作,UI操作,以及html5的localStorage、定位功能
- JS高级程序设置笔记(一)
- js 函数定义三种方式
- MarkdownPad2添加目录(输出为HTML时可用)
- JavaScript闭包实现原理
- C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?
- passport.js学习笔记
- React Native for Android 发布独立的安装包
- 简单谈谈自己对htm与css中画圆的理解。
- 深入理解JavaScript系列(四): 模块化编程
- jQuery选择器案例
- JS函数实现基本计算器计算
- jQuery选择器
- CSS margin 边界叠加知识点
- js实现Enter键提交表单(兼容各个浏览器)
- 夜晚 十点 React-Native 源码 暴力畜 系列