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