刷题笔记(二)——替换空格
题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
1.从前向后遍历字符串,如果遇到空格,则进行替换
替换时要注意后面的字符需要一次后移,因为由 ‘ ’变为 ‘%20’,多了两个字符,所以从最后一个字符开始,依次向后移两个字符的位置。
2.判断字符串遍历完的条件 str[i]=='\0'
3.替换完后,i要从i+3的位置开始继续遍历
代码
class Solution {
public:
void replaceSpace(char *str,int length) {
int i=0;
while(str[i]!='\0')
{
if(str[i]==' ')
{
str[i]='%';
length+=2;
int j=0;
while(j<length-i-2)
{
str[length-1-j]=str[length-2-1-j];
j++;
}
str[i+1]='2';
str[i+2]='0';
i+=3;
}
else i++;
}
}
};