可以使用 stringstreamiomanip 头文件中的 setfillsetw 函数来实现字符串转十六进制数字的操作。

示例代码如下:

#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 对象转换为字符串输出。

C++ 字符串转十六进制数字 - 代码示例与解析

原文地址: https://www.cveoy.top/t/topic/hQ85 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录