c++16进制字符串转普通字符串的函数

比如我这儿有一个16进制的字符串stringa="e68891e788b1e4bda0";转出来应该是"我爱你";请问这个函数怎么实现;... 比如 我这儿有一个16进制的字符串 string a = "e68891e788b1e4bda0";
转出来应该是"我爱你";
请问这个函数怎么实现;
展开
 我来答
百度网友5722492f7
2013-03-08 · TA获得超过725个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:479万
展开全部
= =!大哥,16进制与各个进制的转换时通过2进制实现的。
你想转成中文?
代码中中文是不支持的。你要先转成2进制,然后再在中文编码里面查二进制对应的汉字才行。至于有没有2进制转成中文的编码数据库API就不知道了。
刚才去查了下。
C++中是有二进制转换成汉字的库的,如下
while (p != NULL)
{
sprintf (temp_string1, "0x%s", p);
sscanf (temp_string1, "%x", &temp_int);
printf("temp_string1=%d\n",temp_int);
memset (hanzi_string+i++, (unsigned char) (*((unsigned char *)&temp_int) | *((unsigned char *)&temp_int+1) |*((unsigned char *)
&temp_int+2) | *((unsigned char *)&temp_int+3)), 1);
printf("hanzi_string=%s\n",hanzi_string);
if (p != NULL) p = (char *) strtok (p+strlen (p)+1, " ");
}
更多追问追答
追问
这个在java中可以实现的。。。。
很简单就实现了。
我也是刚刚才开始做C++,完全搞不懂啊;

可以贴下全码么。。我看下用的什么库之类的。。。
追答
这个还真没做过啊,刚才去search了一圈,发现全是汉字转换成2进制的。
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1076370 你去这个帖子看看 有一个回帖的写的挺好,就是太长了。有时间细心看看。

我上面发的用的就是字符串的标准库啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式