我有一个问题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编码的编译器)

10-08 13:30
查看更多