母串中有几个相同的子串

 1 #include <stdio.h>
 2 int getSubstrCount(char* str,char* subStr)
 3 {
 4     int count = 0;
 5     while(*str)
 6     {
 7         int i;
 8         //如果在大串中碰到相同的字符,则进入循环开始连续判断,如果出现不相同的则终止循环。如果完全相同则小串正常结束
 9         for(i = 0;*(str+i) == *(subStr+i)&& *(subStr+i) != '';i++);
10         if(*(subStr+i) == '')
11         {
12             count++;
13             str += i;//之前为:str = str + i;改为str += i;  比较好理解,str后追加偏移的单位
14         }
15         else
16             str++;//如果 *(str+i) != *(subStr+i)    str++   ,统一str只往前走一步。
17     }
18     return count;
19 }
20 
21 int main()
22 {
23     char* str = " aaab aa aaab";
24     char* subStr = " aaab";
25     printf("count = %d
",getSubstrCount(str,subStr));
26     return 0;
27 }
原文地址:https://www.cnblogs.com/wangchaomahan/p/9572916.html