剑指offer 面试题4

替换空格

题目: 请实现一个函数,把字符串中的每个空格替换成“20%”。例如输入“we are happy.”,则输出“we20%are20%happy.”。

本题的解决方法还有一个限制,即在当前字符串上进行替换操作,,不能申请额外内存。所以,前提该字符串数组的总长度要比替换后的长度大,不然替换失败。

#include<iostream>using namespace std;void ReplaceBlank(char str[],int length){if (NULL == str || length <= 0)return;int originalLen = 0;int numOfBlank = 0;int i = 0;while (‘\0’ != str[i]){originalLen++;if (‘ ‘ == str[i])numOfBlank++;i++;}int indexOriginal = originalLen;int newIndex = originalLen + 2 * numOfBlank;if (newIndex >= length)return;while (indexOriginal>=0 && indexOriginal<newIndex){if (‘ ‘ == str[indexOriginal]){str[newIndex–] = ‘%’;str[newIndex–] = ‘0’;str[newIndex–] = ‘2’;}elsestr[newIndex–] = str[indexOriginal];indexOriginal–;}}int main(){char a[20] = “I love you .”;cout << a << endl;ReplaceBlank(a,20);cout << a << endl;return 0;}

找一个让心里安静和干净的地方,自己变得跟水晶一般透明,

剑指offer 面试题4

相关文章:

你感兴趣的文章:

标签云: