字符转换
2016-01-15 09:38
295 查看
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;
}
相关文章推荐
- HTTP Header 详解
- 【HDU】 2846 Repository
- Java Web学习总结(2)——Servlet入门
- SharedPreferences跨应用跨进程获取数据
- In my project it is working fine, This is my build.gradle code:
- Mat格式图像在MFC程序中的显示
- 动态数组2
- [转]SQLServer2008日志文件无法收缩处理方法
- 移动web页面字体大小三
- 晶体三极管进行双路控制驱动电路设计
- CSS3 输入框阴影效果及其他阴影效果
- 动态数组1
- 里德九步审讯法 z
- 移动web页面字体大小二
- Android传递Bitmap对象在两个Activity之间
- 23种java设计模式例子汇总
- Best Time to Buy and Sell Stock III
- JavaScript回顾--13_dom简介
- SpringMVC中用@ParamVariable传递的参数包含斜杠(/)时,匹配不了报404错误的解决方案
- css中数值计算