std::string HexStrToStr(char* szSrc)
{
std::string strResult;
for (int i=0; i<strlen(szSrc); )
{
std::string strTemp;
strTemp = szSrc[i];
int nNum = 0;
if ('a'<=strTemp.c_str()[0] && 'f' >= strTemp.c_str()[0] ||
'A'<=strTemp.c_str()[0] && 'F' >= strTemp.c_str()[0])
{
nNum = strTemp.c_str()[0] - 'a' + 10;
}
else
{
nNum = 16*atoi(strTemp.c_str());
}
strTemp = szSrc[i+1];
if ('a'<=strTemp.c_str()[0] && 'f' >= strTemp.c_str()[0] ||
'A'<=strTemp.c_str()[0] && 'F' >= strTemp.c_str()[0])
{
nNum += strTemp.c_str()[0] - 'A' + 10;
}
else
{
nNum += atoi(strTemp.c_str());
}
strResult += (char)nNum;
i +=2;
}
return strResult;
{
std::string strResult;
for (int i=0; i<strlen(szSrc); )
{
std::string strTemp;
strTemp = szSrc[i];
int nNum = 0;
if ('a'<=strTemp.c_str()[0] && 'f' >= strTemp.c_str()[0] ||
'A'<=strTemp.c_str()[0] && 'F' >= strTemp.c_str()[0])
{
nNum = strTemp.c_str()[0] - 'a' + 10;
}
else
{
nNum = 16*atoi(strTemp.c_str());
}
strTemp = szSrc[i+1];
if ('a'<=strTemp.c_str()[0] && 'f' >= strTemp.c_str()[0] ||
'A'<=strTemp.c_str()[0] && 'F' >= strTemp.c_str()[0])
{
nNum += strTemp.c_str()[0] - 'A' + 10;
}
else
{
nNum += atoi(strTemp.c_str());
}
strResult += (char)nNum;
i +=2;
}
return strResult;
}