c语言合并两个有序数组 两个数组合并C语言?
两个数组合并C语言?
int main(){char a[]=“123456”char b[]=“abcde”int buflen=strlen(a)strlen(b)char*p=(char*)malloc(buflen 1)memset(p,0,buflen)printf(%dn”,buflen)strcpy(p,a)strcat(p,b)printf(%sn”,p)free(p)}C的数组在创建后不能更改,因此数组合并的思想是将数组放入足够大的空间来形成一个新的阵列。上面的函数是一个比较简单的合并方法
这里是借用第三个数组。
原理:先将两个数组复制到第三个数组,然后对第三个数组排序
如果第三个函数没有使用,下面的函数也可以这样做,但是函数声明应该改为:
char*fun(char*DeST,char*STR,char*dest)]/*----函数----------*/
char*fun(char*dest)*STR1,char*STR2,char*dest)//如果目标数组能容纳两个数组
{
char*TMP=dest
char*TMPuudest=dest
如果(!Dest)
return null
while(*STR1)//将STR1复制到Dest
*TMP=*STR1
while(*STR2)//将STR2复制到Dest
*TMP=*STR2
TMPudest--//
while(*TMPudest)//选择排序方法
{
char TMPupx=null
TMP=TMPudest
while(*TMP)//查找下列值的最大值字符串
{
如果(*TMP)udest
TMPupx=TMP
}
如果(!tmpupx)
{
char ch=*tmpudest
*tmpudest=*tmpupx
*tmpupx=ch
}
}
返回dest
}
c语言合并两个有序数组 c语言两个数组相加 两个数组合并成一个并排序
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。