请实现一个函数,将一个字符串中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解法:
class Solution {
public:
void replaceSpace(char *str,int length) {
if (str == nullptr || length < 0)
return ;
int count = 0;//记录空格数
int i = 0;
int num = 0;
while (str[i] != '\0')
{
num++;
if (str[i] == ' ')
count++;
i++;
}
int first = num;
int last = first + 2 * count;
if (last > length)
return;
while (first>=0 && last>first)
{
if (str[first] == ' ')
{
str[last--] = '0';
str[last--] = '2';
str[last--] = '%';
}
else
{
str[last] = str[first];
last--;
}
first--;
}
}
};