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

相关文章