题目描述
请实现一个函数,把字符串中的每个空格替换成”%20”。
你可以假定输入字符串的长度最大是1000。
注意输出字符串的长度可能大于1000。
样例
输入:"We are happy."
输出:"We%20are%20happy."
分析
采用C++自带的STL库中的string继续求解,先find查找字符串中“ ”的位置pos. 若pos != string::npos, 则找到空格对应的位置,使用replace直接继续替换。
basic_string& replace( size_type pos, size_type count,
const basic_string& str );
pos - 将被替换的子串起始位置
count - 将被替换的子串长度
str - 用于替换的 string
C++ 代码
class Solution {
public:
string replaceSpaces(string &str) {
for (string::size_type pos = 0; pos != string::npos; pos += 3)
{
pos = str.find(" ", pos);
if (pos != string::npos)
str.replace(pos, 1, "%20");
else
break;
}
return str;
}
};