C++中ASCII码和字符的转换
例题
大家都知道有 26 26 26 个英文字母,其中 A 是第一个字母。现在请编程求出:
- M 是字母表中的第几个字母?
- 第 18 18 18 个字母是什么?
输出一个数字和一个字母,使用换行隔开。
int main()
{cout << (int)('M' - 'A' + 1) << endl;cout << (char)('A' + 18 - 1) << endl;
}
这里可以使用强制类型转换, 非常方便和简洁。
字符的ASCII码可以直接进行计算, 不过注意直接在 cout 中计算需要用括号括起来, 不然可能会报错。
问题问第几个字符时: 两个字符直接相加减时记得反向+1/-1, 否则会出错。
因为 A 对应的是 第一个字母, 直接减会导致结果比实际值小1, 直接加会导致结果比实际值大1。(小学数学)