在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;
小弟刚开始接触这些东西,很迷惑,希望各位大侠不吝赐教。。谢谢!!! 展开
buf[0]的内容是0x00;
buf[1]的内容是0xff;
buf[2]的内容是0xff;
buf[3]的内容是0x00;
小弟刚开始接触这些东西,很迷惑,希望各位大侠不吝赐教。。谢谢!!! 展开
3个回答
展开全部
#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;
}
}
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;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char cbuf[4];
for(i=0;i<4;i++)
{
cbuf[i] = buf[i];
}
int *p = (int *)cbuf;
int result = *p;
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];
}
{
buf[i]=此处写char型数组名字[i];
}
追问
好吧,我现在的char型数组名假设为szBuf,问题是现在szBuf[0]的内容不是0x00,而是0,szBuf[1]的内容是x,.....怎么办
追答
那你在输出int数组时候选择十六进制四位数据不就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询