C ++ char减法

时间:2016-04-18 22:10:05

标签: c++

所以我意识到假设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特定内容,更清楚地集中问题(对于内容更改编辑,抱歉@πάντα-ῥεῖ,但我觉得有必要)。本质上,标准似乎暗示了基本集的字符的一些排序,但是一些编码不保持排序,那么最重要的原则是什么?

1 个答案:

答案 0 :(得分:1)

  

换句话说,什么时候C / C ++中的字符没有存储在ASCII中?

C或C ++语言没有目标系统使用的实际字符编码表的任何概念。唯一的惯例是像'A'这样的字符文字符合当前编码。

你也可以处理EBCDIC个编码字符,代码看起来与ASCII字符相同。