题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are
Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
- 先遍历一次,找出空格的数量,得到替换后的长度;然后从后往前替换
code
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str==nullptr||length<0)
return;
int l_old=strlen(str);
int n_space=count(str,str+l_old,' ');
int l_new=l_old+n_space*2;
str[l_new]='\0';
int p_old=l_old-1;
int p_new=l_new-1;
while(p_old>=0){
if(str[p_old]!=' '){
str[p_new--]=str[p_old--];
}else{
p_old--;
str[p_new--]='0';
str[p_new--]='2';
str[p_new--]='%';
}
}
}
};