BF 算法(暴力匹配算法,Brute Force)是一种简单粗暴的字符串匹配算法。它的基本思想就是从文本串的第一个位置开始,依次比较文本串和模式串中的字符,如果相同就继续比较下一个字符;如果不同,则从文本串的下一个字符位置开始重新匹配模式串。
以下是使用 C++ 实现 BF 算法,从文件中筛选出含 .com
的个数:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string filename = "test.txt"; // 待处理的文件名
ifstream infile(filename); // 打开文件流
int cnt = 0; // 统计含 .com 的个数
if (infile)
{
string line;
while (getline(infile, line)) // 逐行读取文件内容
{
for (int i = 0; i < line.size() - 3; i++) // 遍历字符串中的所有子串
{
if (line.substr(i, 4) == ".com") // 如果该子串为 .com,则计数器加 1
{
cnt++;
}
}
}
infile.close(); // 关闭文件流
}
cout << "The number of '.com' in the file is: " << cnt << endl; // 输出结果
return 0;
}
以上代码首先定义了文件名 filename
、文件流 infile
和计数器 cnt
。然后使用 ifstream
类打开文件流,并逐行读取文件内容。
对于每一行,使用一个循环遍历该字符串的所有子串,如果该子串为 .com
,则将计数器 cnt
加 1。
最后关闭文件流,输出结果。
需要注意的是,以上代码只能识别文件中明确包含 .com
的字符串。如果 .com
出现在其他字符中间,例如 abc.comdef
,以上代码将判定其不为 .com
字符串。如果需要应对更加复杂的情况,可以考虑使用正则表达式或其他高级算法进行匹配。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END