问题描述:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
解题思路:
- 字符串的替换,首先想到的是string操作函数:replace
- 通过find()找出空格字符,将其替换对应的字符;
- find()找出的是字符串的第一个指定字符,通过死循环,不断寻找指定字符;
- 在循环当中,通过if else条件语言,结束循环。
注意:
- find()返回值是无符号的整数数据(size_type),定义成int类型也可以(强制类型转换);
- 在if循环中,注意判断语句的写法,只能这样写,在外部定义npos类型之后,再使用也不行;
class Solution {
public:
string replaceSpace(string s)
{
string::size_type pos;
//int pos;
//string::npos; //定义之后再使用,出现错误??
while(true)
{
if((pos=s.find(' ')) != string::npos)
{
s.replace(pos, 1, "%20");
}
else
{
break;
}
}
return s;
}
};