[英]C++ char subtraction
所以我意识到假设 ascii 编码会给你带来麻烦,但我从来不确定你在减去字符时会遇到多少麻烦。 我想知道哪些相对常见的情况会导致以下任何一项评估为假。
鉴于:
std::string test = "B";
char m = 'M';
A) (m-'A')==12
B) (test[0]-'D') == -2
此外,小写值的答案是否会发生变化(将77
更改为109
ofc)?
编辑: 数字减法回答了字符数字的这个问题,说标准说'2'-'0'==2
must hold for all numbers 0-9
,但我想知道它是否适用于az
和AZ
,哪个部分2.3
的标准在我的阅读中不清楚。
编辑 2:删除了 ASCII 特定内容,以更清楚地关注问题(抱歉@πάντα-ῥεῖ 进行内容更改编辑,但我觉得这是必要的)。 从本质上讲,该标准似乎暗示了基本集的某些字符排序,但某些编码不保持该排序,那么最重要的原则是什么?
换句话说,C/C++ 中的字符何时不存储在 ASCII 中?
C 或 C++ 语言没有任何目标系统使用的实际字符编码表的概念。 唯一的约定是像'A'
这样的字符文字匹配当前编码。
您也可以处理EBCDIC编码的字符,并且代码看起来与 ASCII 字符相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.