我正在尝试在 C++ 中将字符数值转换为整数。例如 :
char x ='0';
int intX = x-'0';
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是当我尝试用大于 10 的数字做同样的事情时,它吓坏了。例如 :
char onuc = '13';
cout<<int(onuc);
Run Code Online (Sandbox Code Playgroud)
输出是51。
请帮忙谢谢:)
该x - '0'习语仅适用于字符 0 到 9 排列在连续块中的情况。(C++ 标准要求这样做)。
但是'13'是具有实现定义值的多字符常量。它是一种int类型,因此您的分配char通常是有损转换。'1' * 256 + '3'是一个常见的实现。
唉,这种方法行不通,就像
int intX = std::stoi("13");
Run Code Online (Sandbox Code Playgroud)
然而会。