题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题解:我们先统计出来空格的数量,计算出替换后的字符串的长度,然后从后往前替换即可。
参考代码:
1 class Solution { 2 public: 3 void replaceSpace(char *str,int length) { 4 int len=0,clen=0; 5 for(int i=0;str[i];++i) 6 { 7 len++; 8 if(str[i]==' ') clen++; 9 } 10 char *s=str+len; 11 char *cs=str+len+clen*2; 12 while(s<cs) 13 { 14 if(*s==' ') 15 { 16 *cs--='0'; 17 *cs--='2'; 18 *cs--='%'; 19 } 20 else *cs--=*s; 21 --s; 22 } 23 } 24 };