题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:遍历一遍求出空格个数,继而求出变换完的字符串的长度;然后从后向前赋值进行替换。
1 class Solution { 2 public: 3 void replaceSpace(char *str,int length) { 4 //先确定替换后的字符串的长度,然后从后往前替换 5 if(str == NULL || length <= 0) 6 return; 7 int totalLength = 0; 8 int blankLength = 0; 9 for(int i=0;i<length;i++) 10 { 11 if(str[i] == ' ') 12 { 13 blankLength++; 14 } 15 } 16 totalLength = length + 2*blankLength; 17 while(length>=0 && totalLength>length) 18 { 19 if(str[length-1] == ' ') 20 { 21 str[--totalLength] = '0'; 22 str[--totalLength] = '2'; 23 str[--totalLength] = '%'; 24 } 25 else 26 { 27 str[--totalLength] = str[length-1]; 28 } 29 length--; 30 } 31 } 32 };