解题思路是什么啊?如何进行查找

最好有代码,感谢感谢

img


#include<stdio.h>
int fun(char *str,char *substr);
int main()
{ char str[81]="asdasasdfgasdaszx67asdmklo",substr[4]="asd";
int n;
n=fun(str,substr);
printf("n=%d\n",n);
return 0;
}

/* 请在这里填写答案 */

int len = strlen(str);
int sub_len = strlen(substr);
if(len < sub_len)
    return 0;
int i = 0;
int sub = 0;
for(i=0;i<len-sub_len;i++)
{
    int j = 0;
    int flag = 0;
    for(j=0;j<sub_len;j++)
    {
        if(str[i+j] == sub_len[j])
            flag++;
    }
    if(flag == sub_len - 1)
        sub++;
}
return sub;

代码仅供参考,没有验证,优化空间很大