C++ 字符串转十六进制数字 - 代码示例与解析
可以使用 stringstream 和 iomanip 头文件中的 setfill 和 setw 函数来实现字符串转十六进制数字的操作。
示例代码如下:
#include <iostream>
#include <sstream>
#include <iomanip>
int main()
{
std::string str = 'ABCDEF';
std::stringstream ss;
ss << std::hex << std::setfill('0');
for (int i = 0; i < str.length(); i++)
{
ss << std::setw(2) << static_cast<int>(str[i]);
}
std::cout << ss.str() << std::endl;
return 0;
}
输出结果为:
414243444546
其中,ss << std::hex 表示将输出转换为十六进制;std::setfill('0') 表示用 0 填充输出;std::setw(2) 表示输出宽度为 2,不足 2 位用 0 填充;static_cast<int>(str[i]) 将字符转换为对应的 ASCII 码。最后,将 stringstream 对象转换为字符串输出。
原文地址: https://www.cveoy.top/t/topic/hQ85 著作权归作者所有。请勿转载和采集!