我是靠谱客的博主 饱满画笔,最近开发中收集的这篇文章主要介绍【STL】 找子串出现的次数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目的:

找出一个字符串中出现某子串的次数。

 

思路:

主要用的是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】 找子串出现的次数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部