C++中字符串的查找与插入方式
一、字符串查找 先说字符串查找。最朴素的方式就是暴力匹配——从主串的第一个字符开始,逐一与子串对比。如果完全对上,说明找到了;一旦中间有字符不匹配,就把主串的起始位置往后挪一位,再从头对比。虽然效率不高,但胜在逻辑直接,是理解更高级算法的基础。 1、用函数加循环查找 int findsub(cons
一、字符串查找
先说字符串查找。最朴素的方式就是暴力匹配——从主串的第一个字符开始,逐一与子串对比。如果完全对上,说明找到了;一旦中间有字符不匹配,就把主串的起始位置往后挪一位,再从头对比。虽然效率不高,但胜在逻辑直接,是理解更高级算法的基础。

1、用函数加循环查找
int findsub(const string &s,const string &sub){
int n=s.size(),m=sub.size();
if(m>n)
return -1;
for(int i=0;i<=n-m;i++){
int j=0;
while(j
2、用string中自带的find()
当然,C++标准库早已为我们封装好了更优雅的方案——string::find。一行调用就能拿到子串首次出现的位置,返回值类型是size_t(无符号整数,专门存下标或长度)。如果找不到,它会返回一个特殊常量string::npos。
#include
using namespace std;
int main(){
string s,sub;//s是主串,sub是要查找的子串
cin>>s>>sub;
size_t pos=s.find(sub);//调用string中自带的find(),会查找出子串第一次出现的位置,返回值类型是size_t(无符号整数,专门用来存下标或长度)
if(pos!=string::npos){//string::npos是定义的常量,表示没找到
cout<
顺便提一句:如果需要整行读取字符串(包括空格),可以用 getline(cin, s) 替代 cin。
二、字符串插入
字符串插入的思路很直白:在指定位置把原字符串拆成前后两半,中间塞入新内容,再拼回去。下面看两种常见实现。
1、用substr截取子串再拼接
借助substr函数,可以精确切出字符串的任意部分,然后直接用+拼接,代码非常简洁。
#include
using namespace std;
int main(){
string s;//原字符串
string ins;//要插入的字符串
int pos=2;//在下标为二的位置上插入新的字符
cin>>s>>ins;
string res=s.substr(0,pos)+ins+s.substr(pos);//substr从字符串中截取子串,s.substr(起始位置,截取长度),s.substr(起始位置),不写长度默认到最后
cout<
2、用for循环逐个字符拼接
如果不依赖substr,也可以手动用循环来构建新字符串,适合对底层操作更熟悉的场景。
#include
using namespace std;
int main(){
string s;//原字符串
string ins;//要插入的字符串
int pos=2;//在下标为二的位置上插入新的字符
cin>>s>>ins;
string str;
for(int i=0;i
总结
字符串查找和插入是C++文本处理的入门操作。查找时,find函数日常足够用,而手写循环则适合理解原理或定制匹配规则;插入时,substr拼接写法更清爽,for循环则更灵活,适合在复杂逻辑中穿插操作。实际开发中根据需求选择即可,不必拘泥于某一种写法。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















