题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
代码(C++)
解法一
class Solution {
public:
void replaceSpace(char *str,int length) {
string tempstr;
for(int i=0;i<length;i++){
if(str[i]==' '){
tempstr+="%20";
}
else{
tempstr+=str[i];
}
}
strcpy(str,tempstr.c_str());
}
};
解法二
class Solution {
public:
void replaceSpace(char *str,int length) {
int num=0;
int templength=0;
for(int i=0;i<length;i++){
if(str[i]==' ') num++;
}
templength=length+num*2;
for(int i=length-1;i>=0;i--){
if(str[i]==' ') {
str[--templength]='0';
str[--templength]='2';
str[--templength]='%';
}
else{
str[--templength]=str[i];
}
}
}
};