题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
思路:先计算有多少个空格,要准备多少空间,再从后往前替换(保证输入的字符串后面有足够多的空间)
class Solution { public: void replaceSpace(char *str,int length) { int spaceNum=0; for(int i=0; i<length; ++i) { if(str[i]==‘ ‘)++spaceNum; } int size=length+2*spaceNum; str[size]=‘\0‘; for(int i=size-1, j=length-1; j>=0; --j) { if(str[j]!=‘ ‘)str[i--]=str[j]; else { str[i--]=‘0‘; str[i--]=‘2‘; str[i--]=‘%‘; } } } };