C语言中如何将十进制值转换为字符

Шиј*_*гор 1 c

我有一个 char 数组,但值是字符的十进制表示形式。例子:

char bytes[4]={50,48,49,51}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为获取 char 数组,如下所示:

char bytes1[4]={2,0,1,3}
Run Code Online (Sandbox Code Playgroud)

DrY*_*Yap 5

创建数组时,您应该使用字符文字:

char bytes[4] = {'2', '0', '1', '3'};
Run Code Online (Sandbox Code Playgroud)

它们以编译器使用的字符编码存储在内存中,该编码将字符转换为数字。

如果您想获得人类读取时字符表示的十进制值(即“2”-> 2),那么您可以假设bytes[x] - '0'数字字符在字符编码中相邻(至少对于 ASCII 和 UTF 来说是这样) )。

  • 十进制数字字符将是连续的,并且符合 C 标准允许的所有字符集,因此“bytes[x] - '0'”在一致的实现中始终是良好的。 (2认同)