получить алфавитный номер символа - PullRequest
1 голос
/ 31 марта 2009

Я программирую с целью c и хочу получить алфавитный порядок символов. Например: А, А - 1, Б, б - 2, ... Z, z - 26

Есть ли в Objective C функция, позволяющая мне достичь этой цели?

Спасибо заранее, Илья.

Ответы [ 2 ]

4 голосов
/ 31 марта 2009

Ну, если вы можете гарантировать, что набор символов ASCII , то вы можете просто вычесть символ из 'A' и затем добавить 1 (только один, если вы хотите начать считать с 1 вместо 0).

Ex:

char ch = 'E';
int num = toupper(ch) - 'A' + 1; // to upper since 'A' and 'a' are not the same character.
// num now is 5
2 голосов
/ 31 марта 2009

Просто оставьте пять младших бит кода символа:

int n = ch & 0x1F;

Код символа «A» - 0x41, а «a» - 0x61, поэтому после удаления первых трех битов они оба равны 0x01. (Конечно, это работает и для остальных персонажей.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...