如何用C语言获得字符在字母表中的位置?

goe*_*goe 8 c ascii char

有没有一种快速的方法来检索C中英文字母中给定角色的位置?

就像是:

int position = get_position('g');
Run Code Online (Sandbox Code Playgroud)

Gre*_*ill 28

int position = 'g' - 'a' + 1;
Run Code Online (Sandbox Code Playgroud)

在C中,char值可转换为int值并采用其ASCII值.在这种情况下,'a'与97相同并且'g'是103.由于字母表在ASCII字符集中是连续的,因此'a'从值中减去它的相对位置.如果您认为'a'是第一个(而不是第零个)位置,请添加1 .

  • 请注意,ASCII不是C标准的一部分.它几乎无处不在,足以让你在任何你可以找到的系统上工作.该标准保证数字在字符集中是连续的,但不是字母表(在EBCDIC的情况下会弄乱你,但严重的是,谁更关心EBCDIC?). (5认同)
  • 那么A是字母表中的第31个字母? (4认同)
  • 我父亲仍然在COBOL中使用EBCDIC.他维护波音的东西.-_- (2认同)