题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
思路:从后往前,没什么难度
class Solution {
public:
void replaceSpace(char *str,int length) {
if (length <=0)
return;
int oldlength=0;
int numofblank=0;
int a=0;
while(str[a]!='\0'){
++ oldlength;
if(str[a]==' ')
++numofblank;
++a;
}
int newlength =oldlength+numofblank*2;
if(newlength>length)
return;
int i=oldlength;
int j=newlength;
while(i>=0&&j>i){
if(str[i]==' '){
str[j--]='0';
str[j--]='2';
str[j--]='%';
}
else{
str[j--]=str[i];
}
--i;
}
}
};