字符-ASCII 关系

标签 c character-encoding char ascii

C 编程语言中的 char 是一种固定大小的字节实体,专门设计为足够大以存储来自 ASCII 等编码的字符值。

但是与 ASCII 编码相关的整数值在多大程度上可以与 char 字符互换?有什么方法可以将“A”称为 65(十进制)?

getchar() 返回一个整数——大概这与这些值直接相关?另外,如果我没记错的话,在某些情况下可以增加字符...这样(粗略地说)'?'+1 == '@'。

或者这样的编码不保证是ASCII?它完全取决于特定的环境吗?这种对字符的操作在 C 语言中是不切实际的还是不可能的?

编辑:相关:C comparison char and int

最佳答案

我只回答有关递增字符的问题,因为其他问题已在其他答案中解决。

C 标准保证“0”到“9”是连续的,因此您可以递增一个数字字符(“9”除外)并获取下一个数字字符,或者对它们进行其他算术运算(C 1999 5.2.1 3).

C 标准不保证其他字符之间的关系,因此您需要来自特定 C 实现(主要是编译器)的相关文档。

关于字符-ASCII 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827180/

相关文章:

objective-c - Objective C 结构语法

c++ - 如何管理从 C++ 到记事本的重音字符

php - 设置charset=UTF8后特殊字符不显示在网页上

c - 将字符串视为二维字符数组

c++ - 替换两个不同数组之间的字符 C++

c++ - 仅使用函数打印 char 数组的一部分

c - debian中C头文件的位置

c - 共享内存C问题(大小、结构

c - 我的矩阵在可视化和分配上不一样?

python - 将 int 值转换为 unicode