替换空格
题目描述:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
int count;
for(int i=0; i<length; i++) {
if(str[i]==' ') count++;
}
for(int i=length-1; i>=0; i--) {
if(str[i]!=' ') str[i+2*count]=str[i];
else {
str[i+2*count]='0';
str[i+2*count-1]='2';
str[i+2*count-2]='%';
count--;
}
}
}
};
思路:首先遍历字符串得到空格的个数,之后进行判断,如果为非空格,则根据空格的个数向后移动相应的位置,如果为空格则把要添加的子字符串填进去,这里注意count的自减.