如何在不使用C#中的indexof方法的情况下从字符串中查找子字符串?

Nik*_*kar 1 c# string substring

我想在不使用任何字符串方法(包括indexof)的情况下找到字符串中子字符串的位置.我尝试了很多次却失败了.有人会告诉我怎么做C#?我们可以使用.Length运算符.

Jef*_*eff 5

假设这是家庭作业,我的建议是要记住一个字符串是一个IEnumerable字符.所以你可以循环遍历字符串中的字符......


mpe*_*pen 5

对不起..以为这对我来说很有趣,所以......

扰流板

class Program
{
    static void Main(string[] args)
    {
        string str = "abcdefg";
        string substr = "cde";
        int index = IndexOf(str, substr);
        Console.WriteLine(index);
        Console.ReadLine();
    }

    private static int IndexOf(string str, string substr)
    {
        bool match;

        for (int i = 0; i < str.Length - substr.Length + 1; ++i)
        {
            match = true;
            for (int j = 0; j < substr.Length; ++j)
            {
                if (str[i + j] != substr[j])
                {
                    match = false;
                    break;
                }
            }
            if (match) return i;
        }

        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我个人的立场是不主动让他作弊.如果我很好奇,我会解决但不会发帖.最好给他指点或给他指路,但不要舀勺......反正有足够的坏程序员. (3认同)
  • 真的好吗?-1?如果他想欺骗他的家庭作业并扼杀他自己的学习,那不是我的错.还有很多其他方法可以做到这一点. (2认同)