题解 | #统计字符串中子串出现的次数#
统计字符串中子串出现的次数
https://www.nowcoder.com/practice/9eb684f845a446f3b121472de2ea75cd
#include <iostream>
#include <string.h>
using namespace std;
int findSub(const char * str, const char * substr);
int main()
{
char str[100];
char substr[100];
cin >> str >> substr ;
cout << findSub(str, substr) << endl;
return 0;
}
int findSub(const char * str, const char * substr)
{
int cnt = 0;
int strLen = strlen(str);
int subStrLen = strlen(substr);
// 0 1 2 3 4 5 6 7 8 // strLen = 9 - 3 = 6
//
int flag = 1;
for (int i = 0; i <= strLen-subStrLen ; ++i)
{
// 0 , 1 , 2
for (int j = i, k = 0; k < subStrLen; ++k)
{
if (str[j + k] != substr[k])
{
flag = 0;
}
}
if (flag)
{
++cnt;
}
flag = 1;
}
return cnt;
}
这里是主要是进行循环, 然后比较一下每个字符的大小; 主要记得一整个循环比较结束最后的时候flag要重新置为1, 然后下次循环的时候可以重新比较即可. 这样flag就可以生效.