题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:计算空格数,将目的串的总长计算出来为length+空格数*2,然后从后往前一个一个平移串遇到空格添加%20即可
代码如下:
class Solution {
public:
void replaceSpace(char *str,int length) {
if(length==0)
return ;
int sum=0;
for(int i=0;i<length;i++)
if(*(str+i)==' ')
sum++;
int length2=length+sum*2;
length2-=1;
for(int j=length-1;j<length2;j--)
if(*(str+j)==' ')
{
*(str+length2--)='0';
//length2--;
*(str+length2--)='2';
//length2--;
*(str+length2--)='%';
//length2--;
}
else
{
*(str+length2--)=*(str+j);
//length2--;
}
return ;
}
};