<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: est.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: est1.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; } } } } } }