所以我意识到假设ascii编码会让你遇到麻烦,但我真的不确定你可以减去多少麻烦。我想知道相对常见的情况会导致以下任何一种情况评估为假。
假设:
std::string test = "B";
char m = 'M';
A)(m-'A')==12
B)(test[0]-'D') == -2
此外,答案是否会针对小写值进行更改(将77
更改为109
ofc)?
修改:Digit subtraction为char数字回答了这个问题,说标准说'2'-'0'==2
必须为所有数字0-9
保留,但我想知道它是否适用于{{1 }}和a-z
,标准的A-Z
部分在我的阅读中不清楚。
编辑2:删除了ASCII特定内容,更清楚地集中问题(对于内容更改编辑,抱歉@πάντα-ῥεῖ,但我觉得有必要)。本质上,标准似乎暗示了基本集的字符的一些排序,但是一些编码不保持排序,那么最重要的原则是什么?
答案 0 :(得分:1)
换句话说,什么时候C / C ++中的字符没有存储在ASCII中?
C或C ++语言没有目标系统使用的实际字符编码表的任何概念。唯一的惯例是像'A'
这样的字符文字符合当前编码。
你也可以处理EBCDIC个编码字符,代码看起来与ASCII字符相同。