Может кто-нибудь объяснил, как символ - 'а' - PullRequest
1 голос
/ 15 апреля 2020
struct Node{
    bool isTerminal_;
    char ch_;
    Node* children_[26];
    Node(char c='\0'){
        isTerminal_ = false;
        ch_=c;
        for(int i = 0 ; i < 26; i++){
            children_[i]=nullptr;
        }
    }

    //given a lower case alphabetic character ch, returns the associated index 'a'-> 0, 'b'->1....
    int getIndex(char c){
        if(c=='\0'){
            return 0;
        }
        return c -'a';
    }
};

нашел этот код, но я не понимаю, как происходит "return c - 'a';" работает. Он должен указывать индекс буквы, но как работает char - char?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Каждый символ имеет целочисленное значение, которое можно найти в таблице ASCII. Прописная буква «А» имеет значение 65, а для заглавной «В» - 66 («А» + 1), поэтому, выполнив ch-'a ', вы получите индекс персонажа (например: ch =' b 'ch- 'а' = 1)

0 голосов
/ 15 апреля 2020

Символ может быть представлен в виде числа ASCII.

Вот ссылка на таблицу ASCII: http://www.asciitable.com/

Итак, предположим, c = ' b ', в таблице' b 'равно 98, а' a 'равно 97, поэтому 98 - 97 = 1.

...