C++ 程序通过构建数据结构重复搜索相同文本(例如《圣经》)
c++server side programmingprogramming
这是一个 C++ 程序,用于重复搜索相同文本。
算法
开始 将原始字符串和要搜索的模式作为输入。 org_len = 存储原始字符串的长度 pat_len = 存储模式的长度 for i = 0 到 (org_len - pat_len) for j = 0 到 pat_len - 1 if (org[i + j] != patt[j]) if (j == pat_len) 增加 m。 打印找到模式的位置 if (m == 0) 打印未找到匹配项 else 打印找到的实例总数。 return 0 结束
示例
#include<iostream> #include<string.h> using namespace std; int main() { char org[150], patt[150]; int i, j, m = 0, org_len, pat_len; cout << "\n输入原始字符串:"; cin >> org; cout << "输入要搜索的模式:"; cin >> patt; org_len = strlen(org); //存储原始字符串的长度 pat_len = strlen(patt); //存储模式的长度 for (i = 0; i <= (org_len - pat_len); i++) { for (j = 0; j < pat_len; j++) { if (org[i + j] != patt[j]) break; } if (j == pat_len) { m++; cout << "\n在位置找到模式: " << i; } } if (m == 0) cout << "\n未找到匹配项。"; else cout << "\n找到的实例总数 = " << m; return 0; }
输出
输入原始字符串:thisistutorialspoint.thisisac++program 输入要搜索的模式:is 在位置找到模式:2 在位置找到模式:4 在位置找到模式:23 在位置找到模式:25 找到的实例总数 = 4