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

标签 c integer character

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

最佳答案

在C语言中,intcharlong等都是整数

它们通常具有不同的内存大小,因此具有不同的范围,如 INT_MININT_MAXcharchar 数组常用于存储字符和字符串。整数以多种类型存储: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/

相关文章:

c - toascii 有什么作用?

java - C 和 Java 中 PreIncrement 和 PostIncrement 运算符的行为

ios - 使用 Swift 将字符串转换为 Int

java - 掷骰子游戏

linux - sed 解码 html 编码。需要解释如何

C 如何将命令传递的字符串转换为数组

c - MQTT 客户端同时发布和订阅

angularjs - 如何在Angular中仅允许整数?

c - 从 c 中的用户输入中读取 2 个整数

c - 保存到外部文件,C