A. 小智的疑惑
原题传送门 采用博客使用更佳
题目大意: 给定一个字符串,求字符串中出现了多少次 chuanzhi。
做题思路:
s.size()-6,因为子串长度为 7。在循环时,要进行一次判断,判断在下标为
代码如下:
#include<bits/stdc++.h>//万能头文件(不建议新手使用)
using namespace std;
string s;
long long sum=0;//定义
int main()
{
cin >> s;//输入
for(int i=0;i<s.size()-6;i++)//循环
if(s[i]=='c'&&s[i+1]=='h'&&s[i+2]=='u'&&s[i+3]=='a'&&s[i+4]=='n'&&s[i+5]=='z'&&s[i+6]=='h'&&s[i+7]=='i')//判断条件
sum++;//进行累加
cout << sum << endl;//输出答案
return 0;//结束
}
做法二:使用 STL 。
string 类型中的 find 函数进行查找。
代码如下:
#include<bits/stdc++.h>
using namespace std;
long long sum=0,xiabiao;
string s;
int main()
{
cin >> s;
while(s.find("chuanzhi",xiabiao)!=string::npos)
{
xiabiao=s.find("chuanzhi",xiabiao)+1;
sum++;
}
cout << sum << endl;
return 0;
}