如何在不使用幻数的情况下将"char number"转换为int?(在C++中)

Hel*_*Ray 2 c++ int char

换句话说,基于ASCII表,从'0'到'9'的范围,

我怎么能把它们转换成0到9的整数?

解决方案如:

char a = '6';
int b = a-48;
Run Code Online (Sandbox Code Playgroud)

已经漂浮在这些部分周围,但我想知道是否还有其他方法可以在不使用魔术数字的情况下解决这个问题?

Luc*_*ore 6

由于'0'不保证48,但数字保证是连续的,你可以使用a-'0'.