C++ C++;计算字符';s指令
我很好奇这是如何产生所提供的输出的。输出为4,这是字母表中的第5个字符(预计为),后续的字母字符一直工作到z字符,z字符也返回25 示例程序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
#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::coutchare='e';
字符a='a';
std::coutchar
是一个整数类型,因此它可以隐式转换(具体来说,它经历整数升级)为typeint
。可以用基本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谢谢你是的这是我上面问的谢谢你是的这是我上面问的谢谢