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

chara[15]={0x10,0x10…有15个}charb[17]={0x20,0x20…有17个}charc[7]={0x30,0x30…有7个}然后需要abc合并... char a[15] = {0x10, 0x10 …有15个}
char b[17] = {0x20,0x20…有17个}
char c[7] = {0x30,0x30…有7个}
然后需要abc合并最后就是有15+7+7长度。
合并后就是{0x10, 0x10 ……,0x20,0x20……,0x30,0x30……,0x30}

最好是linux的c++代码。
展开
 我来答
金色潜鸟
2015-08-07 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5790万
展开全部
#include<stdio.h>
#include<stdlib.h>

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;
}
追问
您的代码通过了我的测试。但是只能采纳一个答案,非常感谢您的帮助!
wanglixin1001
推荐于2016-01-23 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:900万
展开全部
// 使用memcpy
#include <stdio.h>
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;
}
更多追问追答
追问
为什么我输出时候只有前4个字符了?
追答
我这里给a,b,c赋的值和你给的不同。主要是这段代码:
char *d = (char *) malloc (sizeof(a) + sizeof(b) + sizeof(c));
memcpy(d, a, sizeof(a));
memcpy(d+sizeof(a), b, sizeof(b));
memcpy(d+sizeof(a)+sizeof(b), c, sizeof(c));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式