概述
目的:
找出一个字符串中出现某子串的次数。
思路:
主要用的是string容器的find方法,find方法主要是找到字符串中出现某子串的位置。
例如:
s1 = "abcdefgh"
s2 = "de"
s1.find(s2) = 3
但是如果要求出现的子串的次数,则需要每次查询以后删除查询过的字符。
这里用string容器的erase方法。
例如:
s1 = "abcdefgh"
s2 = "de"
s1.find(s2) = 3
s1.erase(0,3+s2.length()) / / 出现的位置 3 + 子串的长度 2
s1 = "fgh" / /删除了第0个位置到第5个位置之间的字符 (不包括第5个)
#include<iostream>
#include<string>
using namespace std;
int Find_string(string s1,string s2){ //s1为原字符串,s2为要查询的子串
int num = 0; //记录子串的个数
while(s1.find(s2)!=-1){ //如果没有找到s2,则返回-1
int pos = s1.find(s2);
num++;
s1.erase(0,pos+s2.length());//删除从头到s2位置的字符串,防止下次查询重复(s2.size()也行)
}
return num;
}
int main(){
string s1,s2;
while(cin>>s1>>s2){
cout<<"该字符串中含有"<<Find_string(s1,s2)<<"个"<<s2<<endl;
}
return 0;
}
测试:
最后
以上就是饱满画笔为你收集整理的【STL】 找子串出现的次数的全部内容,希望文章能够帮你解决【STL】 找子串出现的次数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复