我有一个问题 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/