Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;计算字符';s指令_C++ - Fatal编程技术网

C++ C++;计算字符';s指令

C++ C++;计算字符';s指令,c++,C++,我很好奇这是如何产生所提供的输出的。输出为4,这是字母表中的第5个字符(预计为),后续的字母字符一直工作到z字符,z字符也返回25 示例程序 #include <iostream> #include <string> using namespace std; int main() { string str = "e"; int numericalvalue = ((str[0]) - 'a'); //this line of code im trying t

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

示例程序

#include <iostream>
#include <string>

using namespace std;

int main()
{
  string str = "e";
  int numericalvalue = ((str[0]) - 'a');  //this line of code im trying to understand
  cout << numericalvalue;
  return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
字符串str=“e”;
int numericalvalue=((str[0])-“a”);//这行代码我正在努力理解

cout它与ASCII表有关

它在集合中的字符被分配一个唯一的整数。在您的例子中,文本
'a'
在ASCII表中的值为97,字符
e
的值为101。通过减去
101-97=4
得到最终结果


有关ASCII表的更多信息,请参见

它与ASCII表有关

它在集合中的字符被分配一个唯一的整数。在您的例子中,文本
'a'
在ASCII表中的值为97,字符
e
的值为101。通过减去
101-97=4
得到最终结果

有关ASCII表的更多信息,请参见

字符“a”的十进制值为97

“a”之后的字母的十进制值大于97

减法

str[0] - 'a'
使用ASCII十进制值生成字母表中的字母位置。

字符“a”具有十进制值97

char e = 'e';
char a = 'a';
std::cout << "e = " << static_cast<int>(e) << std::endl;
std::cout << "a = " << static_cast<int>(a) << std::endl;
“a”之后的字母的十进制值大于97

减法

str[0] - 'a'
使用ASCII十进制值生成字母表中的字母位置。

char e='e';
char e = 'e';
char a = 'a';
std::cout << "e = " << static_cast<int>(e) << std::endl;
std::cout << "a = " << static_cast<int>(a) << std::endl;
字符a='a'; std::cout
chare='e';
字符a='a';

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

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

您熟悉ASCII表吗?字符在内部只是数字(参见ASCII表)您所做的只是减去字符所代表的数字。是的,但字符e的十进制值是101。这是从中减去a的值然后返回吗?不需要对合法问题进行否决表决。用户可能是编程新手。是的,它所做的只是101(e)-97(a)您熟悉ASCII表吗?字符在内部只是数字(参见ASCII表)你所要做的就是减去字符所代表的数字。是的,但字符e的十进制值是101。这是从中减去a的值然后返回吗?没有必要对一个合法的问题进行否决表决。用户可能是编程新手。是的,它所做的只是101(e)-97(a)结果是4谢谢你是的这是我上面问的谢谢你是的这是我上面问的谢谢