c++ 字符串转换16进制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 字符串转换16进制相关的知识,希望对你有一定的参考价值。

我有一个字符串
比如:我爱c++语言
想要转换到16进制并以0xa0 0xa4 0xa8 0xac 0xb0 这样的方式返回文本。
然后再以 十六进制 转换为汉字
还请大神抽出宝贵时间为小弟写一个例子。

#include <iostream>
#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

c++ 如何将string类型的二进制转换为16进制?

C++如何将使用16进制表达的颜色色彩RGB字符串转化为整型或者浮点型表达?(颜色转换色彩转换)

C++中进制转换

如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?