C++ 计算一个字符串中子串出现的次数

用到string的find函数
str.find(sub,index)
sub是子串,index是下标,从那里开始找
如果找到了返回下标,没找到返回一个很大的数,转为整形是int

//字符串中子串出现次数
void get_numschar(){
	int index = 0;	//下标 
	int count = 0;	//次数 
	
	string str;
	string sub;
	cout<<"主串:"<<endl;
	getline(cin,str);	//如果字符串中有空格 
	cout<<"子串:"<<endl;
	getline(cin,sub);
	
	
	//b.find(a);这句代码的意思就是从b字符串中查找a字符串
	//返回值的类型为int类型,返回的是字符串的下标
	//如果没找到,返回一个特别的标志c++中用npos表示,string::npos很大的一个数,转成int值是-1
	//
	
	while( (index=str.find(sub,index)) < str.length() ){
		count++;
		index++;
	}
	
	cout<<count<<endl;
}

    原文作者:WGS.
    原文地址: https://blog.csdn.net/qq_42363032/article/details/103460193
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞