c++怎么把十六进制数据格式化或者写入char数组

定义char数组的时候很容易实现这个功能chars[10]={0x1,0x2,0x3,0x4};但是已经初始化过的char怎么办呢。。我想到可以再定义一个字符串数组然后用... 定义char数组的时候很容易实现这个功能char s[10] = {0x1,0x2,0x3,0x4};
但是已经初始化过的char怎么办呢。。我想到可以再定义一个字符串数组 然后用strcat连接上去。。
但是我要连接的有十几个字符串数组。。就是用循环写也要好多行。。。。
有没有像sprintf(s, "%d%d", a,a); 这样可以格式化的。。或者连接的。 这样一行就能搞定 。。sprintf格式进去的是asc码。不符合要求
展开
 我来答
wangpaishi
2013-08-24 · TA获得超过570个赞
知道小有建树答主
回答量:932
采纳率:52%
帮助的人:762万
展开全部
是这种要求吗?

char[] s[10] = {0x1,0x2,0x3,0x4};

如果你的十六进制数据是字符
char x1[10] = {'0', 'x', 'F'};
char x2[10] = {'F'};
那么你需要把0xF或者F转成数值
也就是转成
BYTE bt1 = 0xF (= 15)

如果你的十六进制数据就是数值
那么可以
BYTE* pBtArray = (BYTE*)s;
pBtArray[0] = bt1;
连接的话,看好长度和起始位置,memcpy 内存拷贝过去就OK,或者自己循环逐个复制

不知道理解你的意思了没
追问
有没有功能和strcat类似 但可以连接多个数组的。。。 strcat(a,b,c);  这样的。。。但是strcat只能连接两个
追答
memcpy(目标地址,源地址,字节长度)

通过调节目标地址,即可实现
来自月岩仪态万千的比目鱼
2013-08-24 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:973万
展开全部
好像有个字符数组类的,你试试。

或者使用STL的vector 、list都可以的。

再或者使用string 、CString ,然后在转换回来。
追问
好像我char数组 假如0xff   转换成string  再转换回来就变成 0xf 0xf了- -
追答
你可以在保存到string的时候做个转换,值把ff保存,把0x去掉。最后在转换回来的时候在每次提取2个字符,再在前面加上0x。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-24
展开全部
最快的方式,还是采用循环吧

其他方式,肯定也是逐个赋值,移植性很差的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
方宏伟2024
2013-08-24 · 超过22用户采纳过TA的回答
知道答主
回答量:2386
采纳率:0%
帮助的人:216万
展开全部
可以百度查询一下,注意使用不同的关键词。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式