题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
/*
* 思路:从后往前替换,这样移动的次数不会太多
*/
class Solution {
public:
void replaceSpace(char *str,int length) {
int after_length = length;
for(int i = 0; i < length; i++){
if(*(str+i) == ' '){
after_length += 2;
}
}
after_length--;
for(int i = length-1; i >= 0; i--){
if(*(str+i) == ' '){
*(str+after_length) = '0';
after_length--;
*(str+after_length) = '2';
after_length--;
*(str+after_length) = '%';
after_length--;
}else{
*(str+after_length) = *(str+i);
after_length--;
}
}
}
};