题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
利用string容器的find函数和replace函数可以轻松解决这个问题。
注意:
1、string和char[]的相互转化问题。
char *str;
string s;
s = str;
for (i = 0; i < s.length(); i++){
str[i] = s[i];
}
str[i] = '\0'; // 注意这里的'\0'
2、find函数返回的是string数组元素的起始下标,若找不到则返回-1。
3、replace函数replace(a, b, "string"),其中将s[a]之后的b个元素替换为”string“。
代码如下:
class Solution {
public:
void replaceSpace(char *str,int length) {
string s;
s = str;
int len = s.length();
long it = 0;
it = s.find(' ');
while (it >= 0){
s.replace(it, 1, "%20");
it = s.find(' ');
//cout<<it<<endl;
}
//cout<<s<<endl;
int i;
for (i = 0; i < s.length(); i++){
str[i] = s[i];
}
str[i] = '\0';
}
};
本文介绍了一种使用C++实现的字符串空格替换算法,通过find和replace函数将字符串中的空格替换为%20,适用于URL编码场景。文章详细解释了string与char[]之间的转换方法,find函数的返回值含义及replace函数的具体用法。
1661

被折叠的 条评论
为什么被折叠?



