此代码是我见过的第一个。当最后一行代码仅用(ch[i] - 'a' + 'A')
编写时,它如何将所有字符从a变为z变成大写字母,我对此感到好奇。
if (ch[i] >= 'a' && ch[i] <= 'z') {
// Convert into Upper-case
ch[i] = (char)(ch[i] - 'a' + 'A');
}
答案 0 :(得分:0)
该行:
ch[i] = (char)(ch[i] - 'a' + 'A');
由于大写字母和小写字母形式之间存在恒定差异,因此将ch [i]设置为其关联的大写字母。
对于通讯方式,可以将该行改写为:
ch[i] = (char)(ch[i] + ('A' - 'a'));
通过添加此常数差,该行将产生小写字母的大写字符。