C++ 字符串转化为16进制 不要用sprintf

例如:Hello转化为48656c6c6f我知道网上到处都是方法,但用的都是sprintf函数。现在在开发驱动,用到MD5校验,需要将char*字符串转换为16进制串存在... 例如:Hello 转化为48656c6c6f
我知道网上到处都是方法,但用的都是sprintf函数。现在在开发驱动,用到MD5校验,需要将char*字符串转换为16进制串存在char*中。WDK没有提供sprintf什么的。所以希望大神给个纯C++实现的代码~
替代函数RtlStringCbPrintfA也不行,引用ntstrsafe出错了,暂时不想解决。
希望大牛支招!
只想用char *,不想用string类。好像提的要求有点多哈..请见谅~
展开
 我来答
wwylele
推荐于2016-01-12 · TA获得超过2523个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:1095万
展开全部
void StringToHex(char *in,char *out)
{
int high,low;
while(*in)
{
high=(*in)>>4;
low=(*in)&0xF;
*(out++)=high>9 ? high-10+'a' : high+'0';
*(out++)=low>9 ? low-10+'a' : low+'0';
in++;
}
*out='\0';
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式