C语言strlen()问题

#include<stdio.h>
#include<string.h>
int main()
{
char a[80],x;
int j=0,len=strlen(a);
gets(a);
x=getchar();
for(int i=0;i<len;i++)
{
if(a[i]==x)
j++;
}
printf("%d",j);
return 0;
}
这个代码答案错误,换成这个后正确
#include<stdio.h>
#include<string.h>
int main()
{
char a[80],x;
int j=0,len;
gets(a);
x=getchar();
len=strlen(a);
for(int i=0;i<len;i++)
{
if(a[i]==x)
j++;
}
printf("%d",j);
return 0;
}
不知道这是为啥原因,求解

你上面的strlen(a),a里面啥也没有啊

可以看下 c参考手册中的 c语言-strlen()