实验目的:掌握模式匹配的基本概念,基本原理。
实验要求:掌握模式匹配的基本概念和基本原理。字符串的逻辑特性、存储表示方法,实现模式匹配算法。
实验内容:
编写程序实现模式匹配算法。
#includeusing namespace std; //BF算法 int BF(string S, string T) { int start = 0; int i = 0, j = 0; while((S[i] != ' ') && (T[j] != ' ')) { if(S[i] == T[j]) { i++; j++; } else { start++; i = start; j = 0; } } if(T[j] == ' ') { cout << "BF算法匹配成功,返回匹配的起始比较下标:"; return start + 1; } else { cout << "BF算法匹配失败,返回:"; return 0; } } int main() { string S, T; cout << "请输入主串S:" << endl; cin >> S; cout << "请输入模式T:" << endl; cin >> T; cout << "主串S:" << S << endl; cout << "模式T:" << T << endl; cout << BF(S, T) << endl; return 0; }
#includeusing namespace std; //BF算法 int BF(const string& s, const string& t) { int i = 0, j = 0; while (i < s.length() && j < t.length()) { if(s[i] == t[j]) { i++; j++; } else { j = 0; i = i - j + 1; } } if (j == t.length()) { cout << "BF算法匹配成功,返回匹配的起始比较下标:"; return i - t.length() + 1; } else { cout << "BF算法匹配失败,返回:"; return 0; } } int main() { //string S = "ababcabcacbab"; // 主串S="ababcabcacbab" string S ; //string T = "abcac"; // 模式T="abcac" string T ; cout << "请输入主串S:" << endl; cin >> S; cout << "请输入模式T:" << endl; cin >> T; cout << "主串S:" << S << endl; cout << "模式T:" << T << endl; int reslut = 0; reslut = BF(S, T); cout << reslut << endl; return 0; }



