当前位置: 代码网 > it编程>编程语言>C/C++ > C++中字符串的查找与插入方式

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

2026年04月26日 C/C++ 我要评论
一、字符串查找在一个长字符串中找到需要从子串,可以用暴力匹配,从长串中第一个字符开始,一个个和字串对比,能完全对上就是找到了,对不上就循环加一。1、用函数加循环查找int findsub(const

一、字符串查找

在一个长字符串中找到需要从子串,可以用暴力匹配,从长串中第一个字符开始,一个个和字串对比,能完全对上就是找到了,对不上就循环加一。

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<m&&s[i+j]==sub[j]){
			j++;
		}
		if(j==m){
			return i;
		}
	}
} 

2、用string中自带的find()

#include<bits/stdc++.h>
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<<pos<<endl;//找到输出下标 
	}
	else{
		cout<<-1<<endl;//没找到输出-1 
	}
	return 0;
}

可以用getlin(cin,s)整行读取字符串包括空格

二、字符串插入

在指定位置加内容,把原字符串在指定位置拆成两个部分,前部分加上插入内容再加上后半部分。

1、用substr把字符串截取字串,拼接起来

#include<bits/stdc++.h>
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<<res;
	return 0; 
}

2、用for循环,逐个字符拼接

#include<bits/stdc++.h>
using namespace std;
int main(){
	string s;//原字符串 
	string ins;//要插入的字符串 
	int pos=2;//在下标为二的位置上插入新的字符 
	cin>>s>>ins;
	string str;
	for(int i=0;i<pos;i++){
		str=str+s[i];
	}//原字符前半部分:0~pos-1 
	for(int i=0;i<ins.size();i++){
		str=str+ins[i];
	}//插入的内容 
	for(int i=pos;i<s.size();i++){
		str=str+s[i];
	}//原字符串后半部分:pos~结束 
	cout<<str;
	return 0; 
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com