web-dev-qa-db-fra.com

Y at-il une fonction qui retourne le ASCII valeur d'un personnage? (C++)

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 entre les nombres hexadécimaux, décimaux et binaires?

13
user98188
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 des nombres entiers sous forme de chaîne - utilisant des représentations hexadécimales, binaires ou décimales?

25
gimel

Vous n'avez pas besoin d'une fonction pour obtenir la valeur ASCII - convertissez-la simplement 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 famille printf:

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'y a pas de fonction intégrée à convertir en binaire; vous devrez rouler le vôtre.

8
Adam Rosenfield

Si vous voulez obtenir la valeur ASCII d'un caractère dans votre code, mettez simplement le caractère entre guillemets

char c = 'a';
3
RC Howe

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 (déc), mais malheureusement pas pour binaire.

2
anon

En ce qui concerne hex & 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, le second la version hexadécimale du même nombre. Clarifiez ce que vous essayez de faire - 

0
Jeff