题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思想:从后往前一个一个字符改
class Solution {
public:
void replaceSpace(char *str,int length) {
int oldlen,newlen;
int splen=0; //空格数
for(oldlen=0;str[oldlen]!='\0';oldlen++){
if(str[oldlen]==' ') splen++;
}
newlen=oldlen+2*splen;//空格本身占一个位置
str[newlen]='\0';
int point1=oldlen-1;
int point2=newlen-1;
while(point1<point2&point1>=0){
if(str[point1]!=' '){
str[point2--]=str[point1];
}else{
str[point2--]='0';
str[point2--]='2';
str[point2--]='%';
}
point1--;
}
}
};