intsunday(string s,string p ) { int i, j, k, m; int ls = s.size(); int lp = p.size(); i = j = 0; int num = 0; while (i <= ls - lp) { j = 0; if (s[i] == p[j]) { int I = i, J = j; num++; while(J<lp) { if (s[I] != p[J]) { num--; break; } I++; J++; } i++; } else { m = i + lp; for (k = lp-1; k>=0; k--) { if (p[k] == s[m]) { i = m - k; break; } } if (k <0) { i = m + 1; } } } return num; }