不使用ASCII将int转换为char

Mum*_*sin 1 c c++

如何将低于10的int转换为char,例如:
5 - >'5'
(将int转换为char而不使用ASCII表)

md5*_*md5 13

由于数字在标准字符集中始终是连续的,因此您可以编写:

int number = 5;
int character = number + '0';

/* Here, character == '5' */
Run Code Online (Sandbox Code Playgroud)

例如,参见C11标准.

n1570,§5.2.1字符集

10个十进制数字:0 1 2 3 4 5 6 7 8 9

[...]

在源和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应比前一个值大1.

这同样适用于C++.

n3337,§2.3字符集

在源和执行基本字符集中,上述十进制数字列表中0之后的每个字符的值应比前一个值大1.