输入一行字符,将此字符串中最长的单词输出,我这个代码哪里错了

#include<stdio.h>
#include<string.h>
int main()
{
void llong(char ch[100]);
char ch[100];
gets(ch);
llong(ch);
return 0;
}

void llong(char ch[100])
{
char a[100],b[100];
int i,j,t=0;
for(i=0;i<100;i++)
{
if(ch[i]==' ')
{
for(j=t;j<=i-1;j++)
a[j]=ch[j];
t=i+1;
}
else if(ch[i]=='\0')
{
for(j=t;j<i;j++)
a[j]=ch[j];
}
if(strlen(a)>strlen(b))
strcpy(b,a);
if(ch[i]=='\0')
break;
}
puts(b);
}