在MFC中,我有一个char型数组,里面存了一个字符串“0x00,0xff,0xff,0x00” 怎样将它们提取出来存到整形?

这个字符串是我从文件读过来的,现在定义一个整形数组intbuf[4];我想达到的效果是:buf[0]的内容是0x00;buf[1]的内容是0xff;buf[2]的内容是0... 这个字符串是我从文件读过来的,现在定义一个整形数组int buf[4];我想达到的效果是:
buf[0]的内容是0x00;
buf[1]的内容是0xff;
buf[2]的内容是0xff;
buf[3]的内容是0x00;
小弟刚开始接触这些东西,很迷惑,希望各位大侠不吝赐教。。谢谢!!!
展开
 我来答
百度网友1cf58ab
2012-08-02 · TA获得超过343个赞
知道小有建树答主
回答量:276
采纳率:50%
帮助的人:369万
展开全部
#include<stdio.h>
main()
{
int buf[4];
char pStr[25]="0x00,0xff,0xff,0x00";
for(int i=0;i<4;i++)
{
char p[3]="";
strncpy(p,&pStr[i*5+2],2);
int t1,t2;
if(p[0]>='a')
{
t1=p[0]-87;
}
else if(p[0]>='0' && p[0]<='9')
{
t1=p[0]-48;
}
if(p[1]>='a')
{
t2=p[1]-87;
}
else if(p[1]>='0' && p[1]<='9')
{
t2=p[1]-48;
}
buf[i]=t1*16+t2;
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vkgszo
2012-08-02 · 超过24用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:69.6万
展开全部
char cbuf[4];
for(i=0;i<4;i++)
{
cbuf[i] = buf[i];
}
int *p = (int *)cbuf;
int result = *p;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-02
展开全部
for (int i=0;i<4;i++)
{
buf[i]=此处写char型数组名字[i];

}
追问
好吧,我现在的char型数组名假设为szBuf,问题是现在szBuf[0]的内容不是0x00,而是0,szBuf[1]的内容是x,.....怎么办
追答
那你在输出int数组时候选择十六进制四位数据不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式