BF算法实现从文件中筛选出含.com的个数-C++编程案例

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
喜欢就支持一下吧
点赞6赞赏 分享