int main(void)
{
char buf[128];
strcpy(buf, "81 00 FF");
string str(buf);
str.erase(0, str.find_first_not_of(" ")); //删除字符串左侧空格
str.erase(str.find_last_not_of(" ")+1); //删除字符串右侧空格
int j=0;
int nPos = 0;
int nHex = 0 ;
memset(buf, 0, 128);
while (1)
{
nPos = (int)str.find(" ");
if (nPos == string::npos)
{
break;
}
sscanf((str.substr(0, nPos)).c_str(), "%x", &nHex);
buf[j] = (char)nHex;
str = str.substr(nPos);
str.erase(0, str.find_first_not_of(" ")); //删除字符串左侧空格
j++;
}
sscanf(str.c_str(), "%x", &nHex);
buf[j] = (char)nHex;
printf("%d\n", strlen(buf));
//
//测试程序解析的正确性
memset(buf, 0, 128);
buf[0] = '\x81';
buf[1] = '\x00';
buf[2] = '\xff';
printf("%d\n", strlen(buf));
return 0;
}
将字符(串)转换为十六进制数
最新推荐文章于 2021-12-29 15:32:20 发布