实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
思路:计算空格数量,然后根据空格数量计算替换后字符串长度,然后将原字符串变为新字符串。
#include <stdio.h>
#include <assert.h>
#include <string.h>
void replace_space( char* dest)
{
int len = 0; //原字符长度
int newlen = 0; //空格变为%20后字符长度
int snum = 0; //空格个数
assert(dest);
while(dest[len] != '\0') //计算原字符长度和空格个数
{
if(dest[len] == ' ')
{
snum+=1;
}
len++;
}
newlen = len+2*snum;
while(len+1) //加一为了判断第一个字符是不是空格
{
if(dest[len] == ' ')
{
dest[newlen--] = '0';
dest[newlen--] = '2';
dest[newlen] = '%';
}
else
{
dest[newlen] = dest[len];
}
newlen--;
len--;
}
}
int main()
{
char p[20] = "We are happy";
replace_space(p);
printf("%s",p);
}
结果展示: