替换空格
题目描述:
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
使用额外的空间存储结果即可。判断一下为空或者没有空格的情况即可。
代码:
1 class Solution { 2 public: 3 void replaceSpace(char *str,int length) { 4 if(str == NULL) 5 return; 6 int spaceNum = 0; 7 for(int i = 0; i < length; i++) 8 { 9 if(str[i] == ' ') 10 spaceNum++; 11 } 12 if(spaceNum == 0) 13 return; 14 char *t = new char[length + spaceNum * 3]; 15 int p = 0; 16 for(int i = 0; i < length; i++) 17 { 18 if(str[i] == ' ') 19 { 20 t[p++] = '%'; 21 t[p++] = '2'; 22 t[p++] = '0'; 23 } 24 else 25 t[p++] = str[i]; 26 } 27 t[p] = '\0'; 28 strcpy(str,t); 29 } 30 };