J'ai une fonction qui renvoie la position d'une lettre dans l'alphabet. Comment ça marche?

Voici à quoi ressemble mon C #:

    private int CalculateLetterPosition(char cCharacter)
    {
        int iReturn = 0;
        int iCharacterValue = (int)cCharacter;
        if (iCharacterValue >= 97 && iCharacterValue <= 122)
        {
            iReturn = iCharacterValue - 96;
        }
        return iReturn;
    }
-1
Norbert Willhelm 27 janv. 2019 à 21:12

3 réponses

Meilleure réponse

Donc toutes les lettres (ou chars) ont des représentations numériques. Fondamentalement,

  1. Votre code convertit la valeur du caractère de texte en sa valeur numérique ASCII.
  2. Soustrait 96 de la valeur numérique puisque 97 est le code ASCII pour «a».
  3. Le résultat final sera la position dans l'alphabet.

Par exemple:

Vous fournissez b à votre fonction.

  • b signifie 98 dans la table ASCII.
  • 98 - 96 = 2
1
Cem YILMAZ 27 janv. 2019 à 18:21

char est un type à 2 octets qui contient en fait la position des caractères dans la table Unicode

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/char

97 == 0x61 (hexadécimal) et c'est la position du caractère 'a' - premier symbole de l'alphabet

Vous pouvez jeter un œil sur la table Unicode - cela devrait vous aider à expliquer comment votre code fonctionne

https://unicode-table.com/en/

0
Vladimir P. 27 janv. 2019 à 18:31

Dans la table de code ASCII, le petit "a" commence à la position 97 d'affilée. Par conséquent, vous n'avez qu'à soustraire 96 de sa position ASCII. Votre code ne fonctionne que pour les lettres minuscules et uniquement pour les lettres comprises dans la plage ASCII.

0
grooveplex 27 janv. 2019 à 18:20