原题链接:替换空格
题目描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
int spacecount = 0;
int total = length;
for(int i = 0 ; i < length ; ++i)
{
if(str[i] == ' ')
{
spacecount++;
}
}
total += spacecount*2; //空格占一个位置 %20占3个位置 所以得+=二倍的空格位置
for(int i = length - 1 ; i >= 0 && total != i ; --i) //从后往前进行替换
{
if(str[i] != ' ')
{
str[--total] = str[i];
}
else
{
str[--total] = '0';
str[--total] = '2';
str[--total] = '%';
}
}
}
};