编写函数实现在字符串s1中查找是否包含字符串s2,若是,则返回开始元素的下标值,否则返回-1。(不要使用库函数strstr)

编写函数实现在字符串s1中查找是否包含字符串s2,若是,则返回开始元素的下标值,否则返回-1。(不要使用库函数strstr)


#include<stdio.h>
int index(char str1[],char str2[])
{
    int i=0,j=0;
    while (str1[i]!='\0'&&str2[j]!='\0') 
    {
        if (str1[i]==str2[j])      //继续匹配下一个字符
        {    
            i++;                //主串和子串依次匹配下一个字符
            j++;  
        }
        else                      //主串、子串指针回溯重新开始下一次匹配
        {    
            i=i-j+1;            //主串从下一个位置开始匹配
            j=0;                 //子串从头开始匹配
        }
    }
    if (str2[j]=='\0')   
        return(i-j);          //返回匹配的第一个字符的下标
    else  
        return(-1);                //模式匹配不成功
}
int main()
{
    char s1[100];
    char s2[10];
    gets(s1);
    gets(s2);
    printf("%d",index(s1,s2));
    return 0;
}