c++ - 十六进制值转 ASCII

标签 c++ hex ascii

我有一个问题 ASCII 表。

如果我有以下字符串:

string a = "\x25\x12";

我怎样才能分别提取\x25 和\x12 以便我可以在 C++ 中打印它们对应的十进制 ASCII 值?

最佳答案

如果这个字符串像您提供的那样被初始化(即在代码中使用文字),那么它已经被编译器解析为两个字符。您可以简单地对其进行迭代(或使用 [] 运算符提取值)。

std::string a = "\x25\x12";
std::cout << a.length() << '\n'; //2
for(char c: a) 
{
    std::cout << static_cast<int>(c) << ' ';
}
std::cout << '\n'
          << static_cast<int>(a[0]) << ' '
          << static_cast<int>(a[1]) << ' '

如果您从任何输入(例如标准输入或文件)读取该字符串,则必须先解析


作为旁注,C++ 实现可以自由选择任何编码,不一定与 ASCII 兼容(尽管我不知道有哪个编译器不使用基于 ASCII 的编码)

关于c++ - 十六进制值转 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331340/

相关文章:

c++ - Vulkan Fence 已被另一个提交使用

c++ - const 的奇怪使用 - 为什么编译?

c++ - 将新创建的对象传递给函数时是否可以避免复制构造函数?

java - 在 Java 中将十六进制数据读入字节数组?

python - 十六进制正则表达式字符串匹配不起作用(python)

python - UnicodeEncodeError : 'ascii' codec can't encode character at special name

c++ - return 1 与 return 0(用户和程序员)

c - RGB 十六进制的 RGBA 十六进制

javascript - PHP 中的 ASCII 数字到字符错误

c - 使用 m4 将字符串转换为 ASCII 代码点