题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路:
计算空格数量,从后往前开始给每个元素搬家,碰到空格就替换字符
class Solution {
public:
void replaceSpace(char *str,int length) {
int cnt = 0;//空格的个数
for(int i = 0;i < length;i++){
if(str[i] == ' ')
cnt++;
}
if(cnt == 0)//不需替换
return ;
//开始从后往前替换空格
for(int i = length - 1;i >= 0;i--){
if(str[i] == ' '){
cnt--;
str[i + cnt * 2] = '%';
str[i + cnt * 2 + 1] = '2';
str[i + cnt * 2 + 2] = '0';
}else
str[i + cnt * 2] = str[i];
}
}
};