创建一个定义子字符串函数时出了点小问题

问题遇到的现象和发生背景

输入的内容 : nosubstring subt

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <string.h>
int main()
{
    char a[100],b[100];
    int n = 3,ret;
    while(n)
    {
        scanf("%s %s",a,b);
        ret = index(a,b);
        putchar('\n');
        printf("%d\n",ret);
        n--;
    }
    return 0;
 } 
int index(char a[],char b[])
{
    int i,j,n,h1,h2,k;
    h1=strlen(a); h2 = strlen(b);
    printf(" a : %s\n",a);
    printf(" b : %s\n",b);
    for(i = 0,k=0; i < h1; i++)
        {
                
             while(a[i+j] == b[j] && j < h2)
             {
                 printf("%c",a[i+j]);
                 j++;
             }
             if(j == h2)
             {
                 k = 1;
                 n = i+1;
                 break;
             }
             else
             {
                 j = 0;
             }
             printf("%c",a[i]);
         }
        
         if(k==0)
         {
             return 0;
         }
         else
         {
             return n;
         }
}

运行结果及报错内容

答案 :nosubsubsttring
0
我的 : nosubsubsstring
0

我的解答思路和尝试过的方法
我想要达到的结果