题解 | #统计字符串中子串出现的次数#
统计字符串中子串出现的次数
https://www.nowcoder.com/practice/9eb684f845a446f3b121472de2ea75cd
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100] = { 0 };
char substr[100] = { 0 };
cin.getline(str, sizeof(str));
cin.getline(substr, sizeof(substr));
int count = 0;
// write your code here......
int lenstr=strlen(str);
int lensub=strlen(substr);
int i=0,j=0;
while(i<lensub&&j<lenstr)
{
if(str[j]!=substr[i])//
{
j=j+1;//如果不能够匹配,str跳到下一个字符
i=0;//有一个字符匹配不上,子串跳到最开始
}
else if(str[j]==substr[i])
{
if(i==lensub-1)
{
if(str[j] == substr[0])
{
i=0;
j=j;
}
else if(str[j] != substr[0]){
i=0;
j+=1;
}
count+=1;
}
else if(i!=lensub-1){
i+=1;
j+=1;
}
}
}
cout << count << endl;
return 0;
}

查看6道真题和解析