<pre name="code" class="csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.IO;
namespace BF
{
class Program
{
static void Main()
{
string aim_path = @"F:\test.txt";//目标串所在文件路径
StreamReader sr = new StreamReader(aim_path, Encoding.Default);
string st;
string aim_str = "";//存储目标串内容
while ((st = sr.ReadLine()) != null)
{
aim_str += st; //将文件中的所有行中的字符串连接在一起
}
string mode_path = @"F:\test1.txt"; //模式串所在文件路径
string mode_str = "";//存储模式串内容
sr = new StreamReader(mode_path, Encoding.Default);
while ((st = sr.ReadLine()) != null)
{
mode_str += st;
}
if (aim_str.Length < mode_str.Length)
{
Console.WriteLine("模式串长度大于目标串");
return;
}
int aim_cur_position = 0; //目标串当前位置
int mode_cur_position = 0;//模式串当前位置
for (; mode_cur_position < mode_str.Length && aim_cur_position < aim_str.Length; aim_cur_position++)
{
if (mode_str[mode_cur_position] == aim_str[aim_cur_position])
{
if (mode_cur_position == mode_str.Length - 1)
{
Console.WriteLine("在{0}处匹配成功", aim_cur_position - mode_str.Length);
break;
}
mode_cur_position++;
continue;
}
else
{
if (aim_cur_position == aim_str.Length - 1)
{
Console.WriteLine("匹配失败");
}
else
{
aim_cur_position -= mode_cur_position;
mode_cur_position = 0;
}
}
}
}
}
}
C#之BF算法
本文转载:CSDN博客