扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
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的数组在创建后不可变得,因此数组合并的思想就是把数组塞到一个足够大的空间里形成新数组。
上面的函数是比较简单的合并方法
//O(n),完成合并
#includestdio.h
int merge(int a[],int b[],int n,int m){//合并两个有序数组
//原理是归并排序的合并阶段
//两个有序数组合并,仍保持有序
int i=0,j=0;
int c[100]={0};//存储合并后的数组
int k=0;
while(injm){
if(a[i]b[j]){
c[k++]=a[i++];
}
else{
c[k++]=b[j++];
}
}
while(in){
c[k++]=a[i++];
}
while(jm){
c[k++]=b[j++];
}
for(int i=0;ik;i++){
a[i]=c[i];//合并后的数组存入a数组
}
return k;//返回合并后的数组长度
}
void print(int a[],int n){//打印数组
for(int i=0;in;i++){
printf("%d ",a[i]);
}
printf("\n");
}
int main(){
int a[20]={1,2,3};
int b[20]={4,5,6};
int c[20]={7,8,9};
int len1=3;//数组a的长度
int len2=3;//数组b的长度
int len3=3;//数组c的长度
int len=0;//合并数组长度
//经过两次合并
len=merge(a,b,len1,len2);//数组a,b合并,存入数组a
printf("a,b合并\n");
print(a,len);//打印a,b合并结果
len=merge(a,c,len,len3);//数组a,b,c合并,存入数组a
printf("a,b,c合并\n");
print(a,len);//打印a,b,c合并结果
return 0;
}
#includestdio.h
int main()
{
int aLength;
scanf("%d",aLength);
int a[aLength];
int i,j=0;
for(i=0;iaLength;i++)
{
scanf("%d",a+i);
}
int bLength;
scanf("%d",bLength);
int b[bLength];
for(i=0;ibLength;i++)
{
scanf("%d",b+i);
}
int allLength=aLength+bLength;
int c[allLength];
for(i=0;iaLength;i++)
{
c[i]=a[i];
}
for(i=aLength;iallLength;i++)
{
c[i]=b[j];
j++;
}
for(i=0;iallLength;i++)
{
printf("%d ",c[i]);
}
return 0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流