题解 | #统计字符串中子串出现的次数#
统计字符串中子串出现的次数
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就可以生效.