商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > C++中字符串的查找与插入方式

C++中字符串的查找与插入方式

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

一、字符串查找

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

C++中字符串的查找与插入方式

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循环则更灵活,适合在复杂逻辑中穿插操作。实际开发中根据需求选择即可,不必拘泥于某一种写法。

本文转载于:https://www.jb51.net/program/362852bet.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注