用“ ”三个字符替换一个空格,本以为直接替换,一个字符替换一个字符可一个直接替换,多个字符替换一个字符,需要遍历原字符的长度,以及替换之后的长度,需要一个字符一个字符的替换
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str == NULL || length < 0)
return ;
int i = 0;
int j = 0;
while(str[i] != '\0')
{
if(str[i] == ' ')
{
j++;
}
i++;
}
int newlength = i + 2 * j;
if(newlength > length)
return ;
while(i >= 0 && newlength > i)
{
if(str[i] == ' ')
{
str[newlength--] = '0';
str[newlength--] = '2';
str[newlength--] = '%';
}
else
str[newlength--] = str[i];
i--;
}
}
};