编写一个函数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。
https://zhidao.baidu.com/question/279642654.html
你可以看下相关的知识点的。
用俩个字符串去接收数字和字母 然后 再排序就好了。
#include<stdio.h>
char *link(char *,char *);
void main( )
{
char a[100],b[100];
gets(a);
gets(b);
link(a,b);
puts(a);
}
char *link(char *a,char *b)
{
int alength=0,blength=0;
char c[200]; int k =0;
while(*(a+alength)!='\0') alength++;
while(*(b+blength)!='\0') blength++;
int i = 0,j = 0;
for(;i<alength&&j<blength;)
{
if((i+j)%2 == 0)
{ *(c+k) = *(a+i); i++; k++;}
if((i+j)%2 == 1)
{ *(c+k) = *(b+j); j++; k++;}
}
if(i>=alength&&j>=blength)
{ }
else if(i<alength)
{
for(;i<=alength;i++)
{ *(c+k) = *(a+i); k++;}
}
else if(j<blength)
{
for(;j<blength;j++)
{ *(c+k) = *(b+j); k++;}
}
for(i =0;i<k;i++)
*(a+i) = *(c+i);
*(a+i) = '\0';
return a;
}