将 ascii 字符代码转换为 0-26 之间的值

Turn an ascii character code to a value between 0-26

大家好今天我有一个关于将ascii码转换为0-26之间的值所涉及的数学问题。

对于小写字母,它只是字符代码 - 65。但是,如果我 运行 变成大写字母,情况就不再如此了。

我想知道将任何字母 ascii 码转换为 0-26 之间的值的算法是什么

以下代码应适用于 C 和 C++:

int codeFor(char ch) {
   if (ch >= 'A' && ch <= 'Z') {
      return ch - 'A';
   } else if (ch >= 'a' && ch <= 'z') {
      return ch - 'a';
   } else {
      /* do something to report an error. */
   }
}

请注意,此程序中没有像 65 这样的常量 - 对于这些目的,使用字符文字要容易得多。

希望对您有所帮助!