如何将整数转换为C中的字符?

Der*_*r13 3 c integer character

例如,如果整数为97,则字符为'a',或98为'b'.

chu*_*ica 10

在C, ,int,char,long等都是整数.

它们通常有不同的存储容量,因此不同范围中INT_MININT_MAX. char和数组char通常用于存储字符和字符串.整数存储在许多类型中:int最常用于速度,大小和范围的平衡.

ASCII是迄今为止最流行的字符编码,但其他编码存在.'A'的ASCII码为65,'a'为97,'\n'为10等.ASCII数据通常存储在char变量中.如果C环境使用ASCII编码,则以下都将相同的值存储到整数变量中.

int i1 = 'a';
int i2 = 97;
char c1 = 'a';
char c2 = 97;
Run Code Online (Sandbox Code Playgroud)

要转换int为a char,简单分配:

int i3 = 'b';
int i4 = i3;
char c3;
char c4;
c3 = i3;
// To avoid a potential compiler warning, use a cast `char`.
c4 = (char) i4; 
Run Code Online (Sandbox Code Playgroud)

出现此警告是因为int通常具有更大的范围char,因此可能发生一些信息丢失.通过使用演员表(char),明确指示潜在的信息丢失.

要打印整数的值:

printf("<%c>\n", c3); // prints <b>

// Printing a `char` as an integer is less common but do-able
printf("<%d>\n", c3); // prints <98>

// Printing an `int` as a character is less common but do-able.
// The value is converted to an `unsigned char` and then printed.
printf("<%c>\n", i3); // prints <b>

printf("<%d>\n", i3); // prints <98>
Run Code Online (Sandbox Code Playgroud)

关于打印的其他问题,例如%hhu在打印时使用或铸造unsigned char,但留待以后使用.有很多东西printf().