字符串的交叉合并
想实现 string1 123456789string2 abcde
合并后 string1 1a2b3c4d5e6789
代码如下
#include <stdio.h>
#include <string.h>
#define N 128
void conj(char *string1, char *string2);
int main(void)
{
char str1[N * 2], str2[N];
printf("Please input string1:");
gets(str1);
printf("Please input string2:");
gets(str2);
conj(str1,str2);
printf("\nstring1:%s\n", str1);
return 0;
}
void conj(char *string1, char *string2)
{
int i=0,j=1,k=1;
int l1=strlen(string1),l2=strlen(string2);
char *str=string1;
*str=*string1;
*(str+1)=*string2;
for(i=2; i<=l1+l2; i++)
{
if(i%2!=0 && *(string2+j)!='\0') //不是偶数且字符串2不结束
{
*(str+i)=*(string2+j);
j++;
}
else
{
*(str+i)=*(string1+k);
k++;
}
}
*(str+i)='\0';
i=0;
for(i=0;*(str+i)!='\0';i++)
{
*(string1+i)=*(str+i);
}
}
为啥结果是这样的???