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("%d\n", buflen);

strcpy(p, a);

strcat(p, b);

printf("%s\n", p);

free(p);

}

C的数组在创建后不可变得,因此数组合并的思想就是把数组塞到一个足够大的空间里形成新数组。

上面的函数是比较简单的合并方法

请问如何使用C语言把两个数组合并在一个数组里?

代码文本:

#include "stdio.h"

int input(int *p,int n){

char i,ch;

for(i=0;in;i++){

if((ch=getchar())=='\n')

break;

else if(ch='0' ch='9')

ungetc(ch,stdin);

scanf("%d",p+i);

}

return i;

}

int main(int argc,char *argv[]){

int a[21],b[10],i,j,k;

printf("Input array a...\n");

i=input(a,10);

printf("and input array b...\n");

j=input(b,10);

for(k=0;kj;a[i++]=b[k++]);

for(j=0;ji;printf("%d ",a[j++]));

putchar('\n');

return 0;

}

c语言中的merge函数

merge()是C++标准库的函数,主要实现函数的排序和合并,不仅仅是合并,具体要求参照标准库。

#include"stdafx.h"

#includeiostream

#includealgorithm

#includearray

#includelist

usingnamespacestd;

boolcomp(constinti,constintj){

returnij;

}

intmain(void){

/*自定义谓词*/

std::arrayint,4ai1={1,3,4,5};

std::listintlsti1;

for(constautoi:ai1)

lsti1.push_front(i);//从大到小

std::arrayint,4ai2={2,6,7,8};

std::listintlsti2;

for(constautoi:ai2)

lsti2.push_front(i);

lsti1.merge(lsti2,comp);

std::cout"merge():";

for(constautoi:lsti1)

std::couti"";

std::coutstd::endl;

/*默认谓词*/

std::arrayint,4ai1d={1,3,4,5};

std::listintlsti1d;

for(constautoi:ai1d)

lsti1d.push_back(i);//从小到大

std::arrayint,4ai2d={2,6,7,8};

std::listintlsti2d;

for(constautoi:ai2d)

lsti2d.push_back(i);

lsti1d.merge(lsti2d);

std::cout"merge():";

for(constautoi:lsti1d)

std::couti"";

std::coutstd::endl;

return0;

}

扩展资料

Merge算法的两种接口,把两个有序的数组合并到另一个数组中:

void Merge(int *A, int f, int m, int e){

int temp[e-f+1];

int i,first=f,last=m+1;

for(i=0;i(e-first+1)f=mlast=e;i++){

if(A[f]=A[last]) {

temp[i]=A[f];

f++;

}

else {

temp[i]=A[last];

last++;

}

}

while(fmlast=e){

temp[i]=A[last];

i++;

last++;

}

while(f=mlaste){

temp[i]=A[f];

i++;

f++;

}

for(i=0;first=e;i++,first++){

A[first]=temp[i];

}

}

参考资料来源:百度百科—c语言


网页名称:c语言合并两个数组的函数 两组数据合并c语言
分享网址:http://scyanting.com/article/ddicsch.html