字符串匹配中出现的问题

问题遇到的现象和发生背景 字符串匹配
用代码块功能插入代码,请勿粘贴截图

img

img

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果可以帮我看看哪点出错了吗

只有这一个测试点无法过


int FindSubStr(char *t, char *p)
{
    char *t1 = t, *p1 = p;
    int len = 0;
    while (*(p1 + len)) // p长度
        len++;
    while (*t1)
    {
        if (*t1 == *p) // p的第一个字符相同后展开比较整个字符串。
        {
            p1 = p;
            while (*p1 && *p1 == *t1) //比较整个p字符串
            {
                p1++;
                t1++;
            }
            if (*p1 == 0) // p全部匹配
            {
                return t1 - t - len;
            }
        }
        t1++;
    }
    return -1;
}

int main()
{
    int n;
    char a[] = "string ring";
    char b[] = "ring";

    n = FindSubStr(a, b);

    printf("%d", n);
    return 0;
}