题目:
实现一个函数,把字符串string中的每一个空格替换成“%20”,例如输入“We are happy.”输出“We%20are%20happy.”
解法:
1、遍历字符串,获取字符串中空格的个数count。
2、字符串的长度由原来的length更新为length=length+2*count;
3、从后向前填充替换后的新字符串。
代码如下:
void replaceSpace(char* str, int length)
{
if(str==NULL || length<1)
return;
int newlength;
int spacecount = 0;
for(int i = 0;i < length ; i++)
{
if(str[i]==' ')
spacecount++;
}
newlength = length + 2*spacecount-1;
length = length-1;
while(newlength>=0)
{
if(str[length]==' ')
{
str[newlength--]= '0';
str[newlength--]= '2';
str[newlength--]= '%';
length--;
}
else
str[newlength--] = str[length--];
}
}