當前位置:首頁 » 編程語言 » c語言數組拼接
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言數組拼接

發布時間: 2022-06-03 15:33:28

c語言,連接2個數組的方法

連接兩個數組有點問題,for(x=0;x<6;x++) 數組長度怎麼確定array.length 不能用6來表示
可以寫個方法,將兩數組合並成一個數組
也可以用API函數 memory

② 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語言如何把三個數組合成一個數組 如a[]={1,2,3}b[]={4,5,6}c[]={7,8,9} 結:d[]={1,2,3,4,5,6,7,8,9,}

設置一個字元串buffer,把三個數組分別循環一遍,放進buffer,用逗號隔開,然後再轉化成一個數組!

④ c語言怎麼用strcat將兩個數組a[i]、b[j]合並成一個數組

strcat是字元串拼接函數,不是數組拼接函數,所以不能用於拼接兩個數組。

可以用以下方法:

  1. 用數組的話用memcpy。

  2. 用循環把所有數組元素重新拷貝。

  3. 直接當字元串輸入。

⑤ 怎麼用c語言將兩個數組並起來

看代碼,寫了幾種數組的合並:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
voidcharacter()
{
charc1[]={'H','e','l','l','o'};
charc2[]={'','w','o','r','l','d','!'};
intk=0;
charnew_c[100];
for(inti=0;i<sizeof(c1);i++)//注意是sizeof()
new_c[k++]=c1[i];
for(i=0;i<sizeof(c2);i++)
new_c[k++]=c2[i];
new_c[k]='';
puts(new_c);

}
voidstring()
{
chars1[]={"hello,"};
chars2[]={"c語言!"};
intk=0;
charnew_s[100];
for(inti=0;i<strlen(s1);i++)//注意是strlen()
new_s[k++]=s1[i];
for(i=0;i<strlen(s2);i++)
new_s[k++]=s2[i];
new_s[k]='';
puts(new_s);
}
voidnumber()
{
intnum1[]={1,2,3},*p1=num1;
intnum2[]={4,5,6,''};//整型數組,字元數組是沒有結束符號,自己加入『』
intnew_num[100];
intk=0;
for(inti=0;i<sizeof(num1)/sizeof(int);i++)
{
new_num[k++]=*(p1++);
}
for(i=0;num2[i]!=0;i++)
{
new_num[k++]=num2[i];
}
new_num[k]='';
for(i=0;new_num[i]!=0;i++)
{
printf("%d",new_num[i]);
}
puts("");

}
voidmain()
{
character();//字元數組的合並
string();//字元串的合並
number();//整型數組的合並,做法是一樣的

}

運行截圖:

⑥ 怎樣在C語言中實現兩個數組的合並

把兩個數組分別合到一個數組裡面啊.
那個數組的長度為 兩個數組的長度的和

⑦ C語言中數組的合並

//兩個數組合並,參考代碼:
#include "stdio.h"
int d=0; //用於記錄數組c的大小,和數組c的輸出類的一些操作
void main()
{
int a[50],b[50],c[100];
int i,j,k; //i表示a數組的大小 j表示b數組的大小 k用於數組的輸出
printf("數組a的輸入,輸入一個數,表明你要輸入多少個數到數組a中\n");
scanf("%d",&i);
for(k=0;k<i;k++)
scanf("%d",&a[k]);
printf("數組b的輸入,輸入一個數,表明你要輸入多少個數到數組b中\n");
scanf("%d",&j);
for(k=0;k<j;k++)
scanf("%d",&b[k]);
void px(int *p,int n); //聲明 排序 冒泡法
px(a,i); //調用
px(b,j); //調用
void prin(int *p,int n); //聲明 數組的輸出函數
prin(a,i);
prin(b,j);
void hb(int *o,int *p,int *q,int m,int n); //聲明 兩個數組的合並函數 前提:這倆個數組必須是排好序的
hb(c,a,b,i,j);
prin(c,d);
}

void px(int *p,int n) //自定義函數 排序 冒泡法
{int i,j,t,leap;
for(i=0;i<n-1;i++) //外層循環n-1次,一次循環沉澱一個數
{
leap=0; //leap作為標記,是否兩數相換
for(j=0;j<n-i-1;j++) //內循環n-i-1次
{
if(p[j]>p[j+1]) //比較兩個數
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t; //來兩個數交換
leap=1; //交換了,標記leap=1
}
}
if(leap==0) break; //經歷了一個內for循環,leap==0的話,表明排序成功了,不需要接下來在排序了。
}
}

void prin(int *p,int n) //自定義函數 數組輸出函數
{
int k,sum=0;
for(k=0;k<n;k++)
{
printf("%d ",p[k]);
sum++;
if(sum%10==0) printf("\n");
}
printf("\n");
}

void hb(int *o,int *p,int *q,int m,int n) //m為p指向數組的大小 n為q指向數組的大小 指針o指向合並的數組
{
int i=0,j=0,k; //i為p指向數組的大小 j為q指向數組的大小
while(1)
{
if(p[i]<q[j])
{
o[d]=p[i];
i++;
d++;
}
else
{
o[d]=q[j];
j++;
d++;
}
if(i==m||j==n) break;
}
if(i==m)
{
for(k=j;k<n;k++)
{
o[d]=q[k];
d++;
}
}
if(j==n)
{
for(k=i;k<m;k++)
{
o[d]=p[k];
d++;
}
}
}

⑧ c語言,怎樣合並數組

#include<stdio.h>
#include<string.h>
intmain()
{
chara[1000],b[100],c[100];
inti=0,m,j=0,n;
printf("請輸入2個從小到大排序的字元串: ");
gets(b);
gets(c);
m=strlen(b)+strlen(c);
for(n=0;n<m;n++)
{
if(i<strlen(b))
{
if(j<strlen(c))
{
if(b[i]<c[j])
{
a[n]=b[i];
i++;
}
else
{
a[n]=c[j];
j++;
}
}
else
{
a[n]=b[i];
i++;
}
}
elseif(j<strlen(c))
{
a[n]=c[j];
j++;
}
else
break;
}
a[n]='';
puts(a);
}