Я программирую с целью c и хочу получить алфавитный порядок символов. Например: А, А - 1, Б, б - 2, ... Z, z - 26
Есть ли в Objective C функция, позволяющая мне достичь этой цели?
Спасибо заранее, Илья.
Ну, если вы можете гарантировать, что набор символов 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
Просто оставьте пять младших бит кода символа:
int n = ch & 0x1F;
Код символа «A» - 0x41, а «a» - 0x61, поэтому после удаления первых трех битов они оба равны 0x01. (Конечно, это работает и для остальных персонажей.)