C/C++ 泛型编程string(模式匹配)

本文介绍了一种用于计算一个字符串在另一个字符串中出现次数的程序设计方法。通过迭代和比较,算法能够准确找出并计数子串在主串中的所有出现位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

字符串模式匹配就是判断一个字符串是否在另一个字符串出现以及出现的位置。

编写程序设计,计算一个字符串在另一个字符串中出现的次数。

输入

包括多组测试数据。

第1行为测试数据的组数。

每组有2行,分别为2个字符串。

输出

第一个字符串在第二个字符串中出现的次数

样例输入

4
aa  aaaa
ab  aaaa
aa  aabbaabb
ab  aabbaabb

样例输出

3
0
2
2
#include<iostream>
#include<string>
using namespace std;
int main()
{
	int n;
	string s1,s2;
	cin>>n;
	while(n--)
	{
		cin>>s1>>s2;
		int s1_size,t=0;
		s1_size=s1.size();
		string::iterator iter1,iter2,iter3;
		for(iter2=s2.begin();iter2!=s2.end()-1;iter2++)
		{
			iter3=iter2;
			int i=0;
			for(iter1=s1.begin();iter1!=s1.end();iter1++,iter3++)
			{
				if(*iter1!=*iter3)
					break;
				i++;
			}
			if(i==s1_size)
				t++;
		}
		cout<<t<<endl;
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值