就是两个十六进制数0xb1,0x32,只不过是存成CString类型的

CString objNum="0xb10x32"
我如何将这里的字符串转换成两个十六进制数,并存入一个char型数组?char objCharNum[2].

MMTTMM
浏览 51回答 2
2回答

慕慕森

//字符串专char数组,strl为字符串,需要和函数HexChar(h搭配用int Str2Hex(CString strl, char *data)&nbsp;{int t,t1;int rlen=0,len=strl.GetLength();//data.SetSize(len/2);for(int i=0;i<len;){char l,h=strl[i];if(h==' '){i++;continue;}i++;if(i>=len){break;}l=strl[i];t=HexChar(h);t1=HexChar(l);if((t==16)||(t1==16)){break;}else&nbsp;{t=t*16+t1;}i++;data[rlen]=(char)t;rlen++;}return rlen;}char HexChar(char c) {if((c>='0')&&(c<='9')){return c-0x30;}else if((c>='A')&&(c<='F')){return c-'A'+10;}else if((c>='a')&&(c<='f')){return c-'a'+10;}else{return 0x10;}}

慕妹3242003

具体的挺麻烦,给你说说思路吧,首先CString objNum="0xb10x32";CString num1,num2,temp;temp=TrimLeft("Ox");//删除左边的Oxnum1=objNum.Left(temp.FindOneOf("Ox"));//假设不知道二进制的位数,num1=b1num2=obkNum.Mid(temp.FindOneOf("Ox")+2);//num2=32然后用转换函数转换对应的num1,num2就行了,好像是_atoi();你查查,这个函数可以设置进制的不行就自己写一个
打开App,查看更多内容
随时随地看视频慕课网APP