写一函数,将两个字符串连接。为什么会出现烫字 我写法可以吗?

#include
void lian(char a[],char b[])
{
int s,n,i;
char arr[1000];

s=strlen(a);
for(i=0;i<s;i++)
arr[i]=a[i];

n=strlen(b);
for(i=s;i<s+n;i++)
arr[i]=b[i];

for(i=0;i<s+n;i++)
printf("%c",arr[i]);

}
void main()
{
char a[1000],b[1000];
gets(a);
gets(b);
lian(a,b);
}

字符串结尾是有'\0'的,注意循环边界