我正在尝试使用蛮力技术进行简单的子字符串搜索,但我遇到了一个我看不到的错误。我对编程很陌生,所以请记住这一点。问题可能非常简单。
using System;
using System.Collections;
using System.Collections.Generic;
namespace SubstringSearch
{
class Program
{
static void Main(string[] args)
{
Console.Write("Please enter some letters: ");
string sequence = Console.ReadLine();
Console.Write("Enter the sequence you want to search for: ");
string pattern = Console.ReadLine();
Console.WriteLine(Search(pattern, pattern.Length, sequence, sequence.Length));
Console.ReadLine();
}
public static int Search(string pattern, int patternLength, string sequence, int stringLength)
{
int i;
int j;
if (stringLength >= patternLength)
{
for (j = 0; j <= (stringLength - patternLength); j++)
{
for (i = 0; i < patternLength && pattern[i] == sequence[i + j]; i++);
if (i >= patternLength)
return j;
else
return -1;
}
}
else
return -1;
}
}
}
所以我收到一个错误和一个警告。首先,它告诉我并非所有代码路径都返回一个值(在 Search() 中)。我不明白为什么。其次,我收到一个警告,指出我的整数“j”在第一个 for 循环中无法访问(在“j++”处)。
请帮忙!我确定答案很简单,但我就是看不到。