替换空格
Posted yl1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换空格相关的知识,希望对你有一定的参考价值。
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str == NULL)
return ;
int Oldnum =0; //记录str的数量
int black = 0; //记录空格的数量
for(int i=0;str[i] != ‘ ‘;i++)
{
Oldnum++;
if(str[i]==‘ ‘)
black++;
}
int Newnum = Oldnum + 2*black; //新的元素个数
if(length < Newnum+1) // 总长度小于新的元素个数
return ;
int ptrold = Oldnum+1; //加上最后一个‘ ‘
int ptrnew = Newnum+1;
while(ptrold >= 0 && ptrnew >ptrold) //这里采用向后插入
{
if(str[ptrold] == ‘ ‘)
{
str[ptrnew--]=‘0‘;
str[ptrnew--]=‘2‘;
str[ptrnew--]=‘%‘;
}
else
str[ptrnew--] = str[ptrold];
ptrold--;
}
}
};
记录:字符串结算为‘