【剑指offer】替换字符串
来源:互联网 发布:手机淘宝怎么上传产品 编辑:程序博客网 时间:2024/04/30 13:30
题目:请实现一个函数,把字符串中的每个空格替换成“%20”,例如输出“We are happy”,则输出“We%20are%20happy”.
//思路:如果直接替换,就有可能覆盖修改在字符串后面的内存。如果创建新的字符串并在新的字符串上做替换,我们就可以分配足够多的内存。//对于任何一个函数,我们要做哪些基本的检测//1.传入的参数有效性//2.函数体边界的判断//3.返回值正确返回void ReplaceBlank(char str[], int length){ if (str == NULL||length<=0) { return; } //originalLength为字符串原始长度 int originalLength = 0; int numberOfBlank = 0; int i = 0; while (str[i] != '\0') { if (str[i] == ' ') { ++numberOfBlank; } ++i; ++originalLength; } //newLength 为把空格替换为%20后字符串长度 int newLength = originalLength + 2 * numberOfBlank; if (length < newLength) { return; } //从后往前拷,减少了挪动字符次数,因为后面都是放置好的元素 //需要两个指针,分别指向两个位置,若两个位置值相等,则拷贝结束 int indexOfOriginal = originalLength;//该指针指向的元素内容为'\0',因为字符串中字符的个数(不包含'\0')指向的'\0' int indexOfNew = newLength; //开始替换 while (indexOfOriginal < indexOfNew&&indexOfOriginal >= 0) { //从后往前拷,第一个 if (str[indexOfOriginal] == ' ') { str[indexOfNew--] = '0'; str[indexOfNew--] = '2'; str[indexOfNew--] = '%'; } else { str[indexOfNew--] = str[indexOfOriginal]; } --indexOfOriginal; }}
0 0
- 【剑指offer】替换字符串
- 剑指offer-字符串替换
- 《剑指offer》-02字符串替换
- 【剑指offer】替换字符串中的空格_04
- 【剑指offer】替换字符串中的空格
- 剑指offer之替换字符串中的空格
- 剑指offer(2) 字符串的替换
- 《剑指offer》:[9]字符串中替换空格
- 《剑指offer》字符串中的字符替换
- 剑指Offer之字符串空格替换问题
- 【剑指offer】字符串的空格替换
- 剑指offer 4题 【字符串】替换空格
- 剑指offer——字符串空格替换
- 字符串(替换空格-剑指offer!!!)
- 【剑指offer】将空格替换制定字符串
- 剑指offer-字符串空格替换为“ ”
- 剑指offer:字符串(替换空格)
- 【剑指offer】字符串中空格的替换
- gulp入门(7)- gulp-concat
- apk图片廋身
- 500mi收银机
- 数组
- xilinx wiki
- 【剑指offer】替换字符串
- ITOO云平台--EasyUI弹出框动态呈现数据
- 实验1 项目2 第(1)个体验
- Java单例设计模式精要及Android源码实例
- 激励函数-Activation Funciton
- 如何判断两个IP是否在同一网段
- DPDK中文-DPDK工具(pdump)
- Java实现将一个字符里出现最多的字母截取,如,addcbbs变为acs
- 总结一下今天安装skylearn碰到的坑吧