c++ char数组如何进行合并?

2025-04-07 11:08:51
推荐回答(2个)
回答1:

#include
#include

char abc[39]="\0";
int main(void)
{
char a[15]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};
char b[17]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
char c[7]={0x30,0x30,0x30,0x30,0x30,0x30,0x30};
int i;
for (i=0;i<15;i++) abc[i]=a[i];
for (i=0;i<17;i++) abc[i+15]=b[i];
for (i=0;i<7;i++) abc[i+32]=c[i];

for (i=0;i<39;i++){ printf("%02x ",abc[i]);
if ((i+1)%10==0) printf("\n");
}
return 0;
}

回答2:

// 使用memcpy
#include 
int main(void) {
// your code goes here
char a[] = {'a'};
char b[] = {'b'};
char c[] = {'c'};
char *d = (char *) malloc (sizeof(a) + sizeof(b) + sizeof(c));
int i;
memcpy(d, a, sizeof(a));
memcpy(d+sizeof(a), b, sizeof(b));
memcpy(d+sizeof(a)+sizeof(b), c, sizeof(c));
for (i = 0; i < sizeof(a) + sizeof(b) + sizeof(c); i++)
printf("%c", d[i]);
free(d);
return 0;
}