我需要知道字母在字母表中的位置。
有没有一种简单的方法可以在不使用FOR循环的情况下做到这一点?
word[0] = hello; //H
H = position 8 into alphabet
E = position 5 into alphabet
谢谢
如果字母是大写字母,则减去'A'的值,如果是小写字母'A'。或者,在字母上使用toupper
或tolower
,并使用以下任一项:
uint8_t position(char c) {
c = tolower(c);
assert(c >= 'a' && c <= 'z');
return c - 'a';
}
正如@WhozCraig所指出的,这只在特殊情况下有效,当你开始处理UTF-8时,一个字母甚至可能不是一个八位字节。