web-dev-qa-db-fra.com

Comment convertir un ASCII char à son ASCII int valeur?

Je voudrais convertir un caractère en sa valeur ASCII int.

Je pourrais remplir un tableau avec toutes les valeurs possibles et comparer à cela, mais cela ne me semble pas correct. Je voudrais quelque chose comme

char mychar = "k"
public int ASCItranslate(char c)
return c   

ASCItranslate(k) // >> Should return 107 as that is the ASCII value of 'k'.

Le point est que atoi() ne fonctionnera pas ici car il ne s’agit que de chiffres lisibles.

Il ne fera rien avec des espaces (ASCII 32).

6
user613326

Faites juste ceci:

int(k)

Vous ne faites que convertir le caractère en entier directement ici, sans appel de fonction.

15
John Zwinck

Un char est déjà un nombre. Il ne nécessite aucune conversion car le ASCII est simplement un mappage de chiffres en représentation de caractères.

Vous pouvez l'utiliser directement comme un nombre si vous le souhaitez ou le lancer.

6
Jack

En C++, vous pouvez également utiliser static_cast<int>(k) pour rendre la conversion explicite.

1
Tisys

Pour convertir un caractère ASCII en ASCII valeur :

  char c='A';
    cout<<int(c);

Pour convertir un ASCII valeur en ASCII caractère :

int a=67;
  cout<<char(a);
0
Linkon
#include <iostream>

char mychar = 'k';
int ASCIItranslate(char ch) {
    return ch;
}

int main() {
    std::cout << ASCIItranslage(mychar);
    return 0;
}

C'est votre code d'origine avec les différentes erreurs de syntaxe corrigées. En supposant que vous utilisiez un compilateur utilisant ASCII (ce qui est à peu près tous les jours), cela fonctionne. Pourquoi pensez-vous que c'est faux?

0
Pete Becker