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).
Faites juste ceci:
int(k)
Vous ne faites que convertir le caractère en entier directement ici, sans appel de fonction.
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.
En C++, vous pouvez également utiliser static_cast<int>(k)
pour rendre la conversion explicite.
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);
#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?