string字符串

/*
替换空格:实现一个函数,把字符串中的空格替换为 %20
输入:s = “We are happy.”
输出:“We%20are%20happy.”
/
//主要需要考虑替换后字符串长度会增加
/
如果在原地替换,需要确保字符串s有充足的长度
原地替换,需要先遍历字符串中空格的数量,然后将数组长度修改至:s.size()+2空格数;因为每替换一个空格,需要增加额外两个空间
然后从字符串尾向前移动,找到空格,将0添加至s[j],2添加至s[j-1],%添加至s[j-2];
int len = s.size(); //len为原来字符串的长度
s.resize(len+2
count);
for(int i = len-1,int j = s.size()-1;i < j ;i–;j–){ //当i = j时退出
if(s[i] != ’ ‘){
s[j] = s [i];
}
else {
s[j - 2] = ‘%’;
s[j - 1] = ‘2’;
s[j] = ‘0’;
j -= 2; //j-2而不是j-3的原因是for循环还要再减一次
}
}
return s;
/
//新建一个新的字符串
string replaceSpace(string s) {
string s1;
for (char &c : s) {//&c 直接引用原对象,而不是将原对象拷贝一份来使用,更加节省空间和时间。少了一个拷贝的过程,尤其对于比较复杂的类对象,更加节省时间
/

+= 运算符:可以追加完整字符串。
append 函数:也允许追加完整字符串
push_back 函数:不允许追加完整字符串。
*/
if (c == ’ ‘) {
s1.push_back(’%’);
s1.push_back(‘2’);
s1.push_back(‘0’);
}
else {
s1.push_back©;
}
}
return s1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值