#include <bits/stdc++.h>
using namespace std;
int main(){
string s;cin>>s;
int x = 0,count = 0;
while(s.find("csdn",x)!=string::npos){
x = s.find("csdn",x)+1;
count++;
}
cout<<count<<endl;
}
-
while(s.find("csdn", x) != string::npos)
:
-
s.find("chuanzhi", x)
查找从位置x
开始的子串"csdn"
在字符串s
中的位置。如果找不到,返回string::npos
。循环继续,直到"csdn"
不再出现。
2. x = s.find("csdn", x) + 1
:
-
更新
x
为找到的"csdn"
的位置加 1。这样,下一次查找会从当前找到的位置的下一个字符开始,避免重复计数相同的子串。