C语言问题求解!!!!!

编写一个函数char *link(char *s1,char *s2),实现字符串s1与s2的交叉连接,连接后得到的新字符串放在s1中,函数返回值为字符数组s1的首地址。请
#include
#include
int  main( )
{char a[100],b[100];
 char *link(char *,char *);
 gets(a);
 gets(b);
此处请写出link函数的调用过程;
 puts(a);
}
char *link(char *s1,char *s2)
{
   //将s1与s2所指向的字符串交叉连接,生成的新字符串放在s1所指的数组中
}
例如运行时:代表回车
输入abc12345,输出a1b2c345。
输入abcde123,则输出a1b2c3de。

char *link(char *s1,char *s2)
{
int i=0;
int j=s1.lenth();
int l=s2.lenth();
char *ch;
for(;i<j||i<l;i++)
{

if(s1[i]!="\0")
*ch++=s1[i];
if(s2[i]!="\0")
*ch++=s2[i];
}
return ch;
}