将字符(串)转换为十六进制数

来源:互联网 发布:网络歌手出身 编辑:程序博客网 时间:2024/05/01 23:15
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;}

原创粉丝点击