C ++计算char的顺序

时间:2016-08-29 14:52:40

标签: c++

我很好奇这是如何产生提供的输出。输出为4,这是字母表中的第5个字符(预期),随后的字母字符一直工作到z字符,也返回25。

示例程序

.attr("itemValue");

4 个答案:

答案 0 :(得分:3)

它与ASCII表有关。

它在集合中的字符被赋予唯一的整数。在您的情况下,文字'a'在ASCII表中的值为97,而字符e的值为101.通过减去101 - 97 = 4,您将获得最终结果。

有关ASCII表的更多信息,请访问here

答案 1 :(得分:2)

char是一个完整的类型,因此它可以隐式转换(具体来说,它经历整数提升)到类型int。您可以使用基本char表示的每个字符都具有0-255(或-128到127)之间的数字值。所以说' a' - ' 0'实际上是有效的,因为它与使用97 - 48 s int完全一样。

答案 2 :(得分:1)

角色' a'具有ASCII十进制值97.

' a'之后的字母小数值大于97。

减法

str[0] - 'a'

使用ASCII十进制值生成字母表中的字母位置。

答案 3 :(得分:1)

char e = 'e';
char a = 'a';
std::cout << "e = " << static_cast<int>(e) << std::endl;
std::cout << "a = " << static_cast<int>(a) << std::endl;
计算机没有像#34;字符等#34;这样的抽象内容。 它们只适用于1和0(数字)。 计算机使用一个数字,但知道,一旦它在屏幕上打印出来,就可以使用.ttf文件中的图形表示该字符&#34;。