请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
做法一:Java
public String replaceSpace(StringBuffer str) { if(str == null) return null; for(int i = 0; i < str.length(); i++) { if(str.charAt(i) == ‘ ‘) { str.replace(i , i+1 , "%20"); } } return str.toString(); }
注意:StringBuffer的replace函数参数*(开始位置(包括),结束为止(不包括),替换内容)
charAt函数,toString函数
做法二:C++
void replaceSpace(char *str,int length) { if(str == NULL) return; int num = 0; for(int i = 0; i < length; i++) { if(str[i] == ‘ ‘) num++; } int len = length + 2*num;//替换后字符串的长度
//从后向前替换 while(length >= 0 && len > length )//知道新字符串的长度与原字符串的长度相等 { if(str[length] == ‘ ‘) { str[len--] = ‘0‘; str[len--] = ‘2‘; str[len--] = ‘%‘; } else { str[len--] = str[length];//length不能减1,‘\0‘也要复制 } length--; } }