码迷,mamicode.com
首页 > 其他好文 > 详细

【华为练习题】十六进制字符串形式转为内存值形式

时间:2016-08-23 15:09:07      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

【华为练习题】十六进制字符串形式转为内存值形式

题目

功能:将十六进制字符串形式内容转为内存值形式(注:pBuffer的内存申请由调用者保证)

输入:szHexText:十六进制字符串形式,如: “6566”

输出:dataOutput,其中:内存值形式Buffer,即内存的{0x65, 0x66}

返回:返回转换成功的buffer的有效字节数

解答

#include <iostream>
#include <string>
using namespace std;

inline bool isRight(char c){
    return (c >= ‘0‘ && c <= ‘9‘) || (c >= ‘a‘ && c <= ‘f‘) || (c >=‘A‘ && c <= ‘F‘);
}

int hexToBin(string &s){
    string tmp;
    for (unsigned i = 0; i < s.size(); i++)
    {
        if (isRight(s[i]))
        {
            tmp.push_back(s[i]);
        }
    }
    s.clear();
    s.push_back(‘{‘);
    int count = 0;
    for (unsigned i = 0; i < tmp.size() - 1; i += 2)
    {
        count++;
        s += "0x";
        s.push_back(tmp[i]);
        s.push_back(tmp[i+1]);
        s.push_back(‘,‘);
    }
    s.pop_back();
    s.push_back(‘}‘);
    return count;
}

【华为练习题】十六进制字符串形式转为内存值形式

标签:

原文地址:http://blog.csdn.net/sps900608/article/details/52290319

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!