发布于2026-07-12 阅读(0)
扫一扫,手机访问
先说字符串查找。最朴素的方式就是暴力匹配——从主串的第一个字符开始,逐一与子串对比。如果完全对上,说明找到了;一旦中间有字符不匹配,就把主串的起始位置往后挪一位,再从头对比。虽然效率不高,但胜在逻辑直接,是理解更高级算法的基础。

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循环则更灵活,适合在复杂逻辑中穿插操作。实际开发中根据需求选择即可,不必拘泥于某一种写法。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8