例如,如果整数为 97,则字符为 'a',或 98 为 'b'。
最佳答案
在C语言中,int
、char
、long
等都是整数。
它们通常具有不同的内存大小,因此具有不同的范围,如 INT_MIN
到 INT_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;
要将 int
转换为 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;
出现此警告是因为 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>
关于打印还有其他问题,例如使用 %hhu
或在打印 unsigned char
时进行强制转换,但请稍后再讨论。 printf()
有很多内容。
关于c - 如何将整数转换为C中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026727/