//编写替换函数 string replace(string& s, string& t,string& m, int start) { int len1 = s.length(); int len2 = m.length(); int len3 = t.length(); string temp; for (int i = 0; i < start; i++) { temp += s[i]; } temp += m; for (int i = start + len3; i < len1; i++) { temp += s[i]; } return temp; }
voidBFmatching(string &s, string &t, string &m) { int i = 0; int j = 0; int len1 = s.length(); int len2 = t.length(); int len3 = m.length(); while (i < len1) { if (s[i] == t[j]) { i++; j++; } else { i = i - j + 1; j = 0; } if (j >= len2) { s = replace(s, t, m, i - j); len1 = s.length(); // 更新字符串的长度 i = i - j + len3; j = 0; } } }