请问有没有人帮我看一下下面的程序为啥能够成功查找到子串


#include<stdio.h>#include<string.h>int substring(char s[], char sub[]);int main(){ char s[99],sub[99]; gets(s); gets(sub); if(substring(s,sub)==-1) printf("%s子串没有找到!",sub); else printf("子串%s在主串%s中第一次出现的位置是%d",sub,s,substring(s,sub));}int substring(char s[], char sub[]){ int i,j,flag,x,l=0; for(i=0;sub[i]!='\0';i++) { l++; } for(i=0;sub[i]!='\0';i++) { for(j=i;s[j]!='\0';j++) { if(sub[i]==s[j]) { flag=1;x=j; break; } else{ flag=0; continue; } } } if(flag==0)return -1; return x+2-l;}