c++ 字符串转换16进制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 字符串转换16进制相关的知识,希望对你有一定的参考价值。
我有一个字符串
比如:我爱c++语言
想要转换到16进制并以0xa0 0xa4 0xa8 0xac 0xb0 这样的方式返回文本。
然后再以 十六进制 转换为汉字
还请大神抽出宝贵时间为小弟写一个例子。
#include <string>
#include <cstdio>
#include <sstream>
using namespace std;
std::string char2hex(std::string const &s)
std::string ret;
for (unsigned i = 0; i != s.size(); ++i)
char hex[5];
sprintf(hex, "%#.2x ", (unsigned char)s[i]);
ret += hex;
return ret;
std::string hex2char(std::string const &s)
std::string ret;
std::istringstream iss(s);
for (std::string buf; std::getline(iss, buf, ' ');)
unsigned int value;
sscanf(buf.c_str(), "%x", &value);
ret += ((char)value);
return ret;
int main()
std::string ret;
ret = char2hex("我爱C++语言");
std::cout << ret << std::endl;
std::cout << hex2char(ret) << std::endl;
return 0;
追问
非常感谢,请问转换的时候在最后一个结束处会多追加一个空格能否处理下呢,万分感谢。
参考技术A 首先,中文编码是什么?GBK还是UTF8?追问中文编码啊
追答UTF8也支持中文啊,GBK也支持中文,GB2312,GB18030,编码太多,首先要确认文件编码啊~
以上是关于c++ 字符串转换16进制的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 中将字符串从十进制代码转换为西里尔文/unicode16?
C++ 字符串 0CF00400 如何转换成16进制 0X0CF00400