2 weifengzc weifengzc 于 2015.06.16 15:09 提问

mfc 如何获取字符串中的16进制数据

mfc 如何获取字符串中的16进制数据,如字符串“0x123F”或"123F",获取16进制数据0x123F

4个回答

Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.16 15:54
Tiger_Zhao
Tiger_Zhao 回复weifengzc: 解析字符串首先要定下规则,什么样的格式才算“16进制数据”,然后才能决定算法。如果没规则,随便给个字符串 "1234567890abcdefghijk",怎么提取?天晓得!
2 年多之前 回复
weifengzc
weifengzc 谢谢您能回答我的问题,我仅是想提取字符串中的数字,不是数据转换
2 年多之前 回复
ycg514230
ycg514230   Rxr 2015.06.16 17:38

这种算法只能针对特殊的格式字符串吧,不能做到万能的算法。
你这种需求你肯定知道字符串的大致格式,那么你就只有根据你的需求来匹配16进制的。
比如你可以搜索0x开头的,然后在后面继续匹配。

oyljerry
oyljerry   Ds   Rxr 2015.06.16 19:39

先读取字符串,然后根据你的格式要求,对应的转换为对应的进制,如stol()函数

sky_terra
sky_terra   2015.06.17 11:25

使用std::stringstream类

CString csNumber("0x123F");
std::string strNumber(csNumber.GetString());

std::stringstream iss(strNumber);
int iNumber = 0x0;
iss>>std::hex>>iNumber;


数字转换成16进制字符

int iNumber = 0x123F;
std::stringstream oss;
oss<<"0x"<<std::hex<<iNumber;
std::string strNumber = oss.str();

Csdn user default icon
上传中...
上传图片
插入图片