c++ primer 第九章答案
9.44 编写一个函数,接受三个string参数s,oldVal和newVal.使用迭代器及insert和erase函数将s中所有oldVal替换为newVal。测试你的程序,用它替换通用的简写形式,如,将“tho”替换为“though”,将“thru”替换为“through”
原题是要求使用replace + 下标
下面解法是使用 replace + find函数
#include <iostream>
#include <algorithm>
#include<string>
#include<array>
#include<vector>
#include<forward_list>
#include<deque>
#include<list>
using namespace std;
void replaceStrByReplace(string& s, string& oldVal, string& newVal)
{
int old_size = oldVal.size();
int new_size = newVal.size();
int pos;
auto iter_s = s.begin();
while (pos = s.find(oldVal), pos != -1)
{
s.replace(pos, old_size, newVal);
}
}
void test943()
{
string str = "abc thru efg thru";
string oldStr = "thru";
string newStr = "through";
replaceStrByReplace(str, oldStr, newStr);
cout << str << endl;
}
int main() {
test943();
cout << a << endl;
system("pause");
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!