11
votes

Obtenez la valeur ASCII pour un car, ORD équivalent en C ++

dans Delphi existe une fonction appelée ord qui retourne la valeur ordinale d'une expression de type ordinal.

Par exemple, vous pouvez récupérer la valeur ASCII pour un caractère de cette manière

ORD ('A') Retour 65

ORD ('A') Retour 97

en C ++ Quelle fonction que je dois utiliser pour obtenir la valeur ASCII pour un caractère.


1 commentaires

Je suis un programmeur C ++, je vois commander quand je lis juste un code Delphi. Je me demande ce que c'est et cette question prouve que mon hypothèse est juste. Sentez-vous que c'est un peu overkillé.


6 Réponses :


10
votes

Un caractère détient la valeur ASCII.

Vous pouvez le jeter à un entier si vous préférez.


1 commentaires

Sauf que la norme C ++ n'a pas besoin d'ASCII



23
votes

Un simple int A = c; c est un char devrait fonctionner.


4 commentaires

Ne fonctionnera pas pour les codes ANSI ci-dessus 127, à moins que une sorte d'option de compilateur soit utilisée. int A = (sans signé) c; serait plus proche de commandement ().


@Sergey, le mot ANSI n'a jamais été mentionné dans la question, juste ASCII. Et ASCII est limité à 0..127. Dans tous les cas, la norme ISO ne manda pas si Char est signé ou non.


@paxdiablo, mais Ord () a été mentionné. Et ordorma () Les caractères de soutien sont-ils au-dessus de 127. et la distribution doit être utilisée exactement parce que la norme ne garantit pas de manière non signée, tandis que la plupart des utilisations de mise en œuvre signées par défaut. Mais il vaut mieux utiliser Unicode de toute façon.


Très bonne réponse. Bon de savoir que c'est si simple et que la valeur par défaut lors de la coulée cela,



7
votes

Typassez-le en utilisant ASCII = (int) caractère .


0 commentaires

2
votes
char c = 'a';
int i = (int)c;

0 commentaires

1
votes

Que diriez-vous de

#include <ctype.h>

int LOrdValue = __toascii('a');


0 commentaires

0
votes

Vous pouvez faire xxx

ceci devrait donner 65


0 commentaires