Existe-t-il une fonction qui renvoie la valeur ASCII d'un caractère? (C ++)
Question
J'ai besoin d'une fonction qui retourne la valeur ASCII d'un caractère, y compris les espaces, les tabulations, les nouvelles lignes, etc ...
Sur une note similaire, quelle est la fonction qui convertit les nombres hexadécimaux, décimaux et binaires?
La solution
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
Un caractère est un entier, pas besoin de fonctions de conversion.
Peut-être recherchez-vous des fonctions affichant les nombres entiers sous forme de chaîne - en utilisant des représentations hexadécimales, binaires ou décimales?
Autres conseils
Vous n'avez pas besoin d'une fonction pour obtenir la valeur ASCII - convertissez-la en un entier par une conversion (implicite):
int x = 'A'; // x = 65
int y = '\t'; // x = 9
Pour convertir un nombre en hexadécimal ou en décimal, vous pouvez utiliser l'un des membres de la printf
famille:
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
Il n’existe pas de fonction intégrée à convertir en binaire; vous devrez rouler le vôtre.
Si vous souhaitez obtenir la valeur ASCII d'un caractère dans votre code, il suffit de mettre le caractère entre guillemets
char c = 'a';
Vous pouvez confondre représentation interne et sortie. Pour voir quelle valeur a un personnage:
char c = 'A';
cout << c << " has code " << int(c) << endl;
De même pour les valeurs hexadécimales - tous les nombres sont des nombres hexadécimaux, il s’agit donc simplement d’une sortie:
int n = 42;
cout << n << " in hex is " << hex << n << endl;
Le " hex " dans l'instruction de sortie est un manipulateur C ++. Il existe des manipulateurs pour hex et decimal (dec), mais malheureusement pas pour binaire.
Jusqu'à hex & amp; binary - ce ne sont que des représentations d'entiers. Ce que vous voulez probablement est quelque chose comme printf (& "% D &", N), et printf (& "% X &", N) - le premier affiche la décimale, la seconde la version hexagonale du même numéro. Clarifiez ce que vous essayez de faire -