c语言子串模式匹配 输出的结果少了情况

代码如下,输出的结果比实际上少了好几个,求解答~

#include<stdio.h>
int main()
{
char a[30],b[30];
int i,t=0,m=0;
printf("Please input A\n");
gets(a);
printf("Please input B\n");
gets(b);
m=sizeof(b)-1;
for(i=0;i<sizeof(a);i++)
{
if((a[i]==b[0])&&(a[i+m]==b[m]))
{
printf("%d\n",i);
t++;
}

}
if(t==0)
{
    printf("NO MATCH FOUND\n");
}
system("PAUSE");

}

img