2011-09-19 9 views
-1

Je veux stocker la valeur ASCII d'une lettre dans une variable, comment puis-je faire cela?Comment comparer une valeur ASCII

par exemple:

r ASCII variable = 82 
main() 
{ 
    character = "character read from a file"; 
    variable= "r ascii"; //(in this case 82), the problem is that the letter is always  variable.; 
    printf("the value of %c is %d, character, variable) 
} 

Comment puis-je faire cela?

Également sur une note supplémentaire, comment pourrais-je lire un caractère .txt par caractère? Il pourrait donc être sauvegardé sur la variable de caractère.

Répondre

7

Il suffit de faire:

if (r == 82) { 
    // provided r is a char or int variable 
} 

Dans C, char variables sont représentées par leur ASCII valeur entière, donc, si vous avez ceci:

char r; 
r = 82; 
if (r == 82) { 
} 

est le même que:

char r; 
r = 'R'; 
if (r == 'R') { // 'R' value is 82 

} 

Vous pouvez même les mélanger:

char r; 
r = 82; 
if (r == 'R') { // will be true 

} 
+2

En C, les variables ne sont pas ASCII _necessarily_, seulement pour environ 99,9% des machines là-bas est vrai et je, malheureusement, travailler sur l'un des autres :-) – paxdiablo

+0

@paxdiablo: hehehehehe ... sur quelle machine travaillez-vous? –

+0

USS/OMVS/(peu importe ce qu'on appelle cette semaine) sur le mainframe utilise EBCDIC. – paxdiablo

1

Si vous voulez juste pour enregistrer la valeur ascii sur une variable entière

il suffit d'utiliser cette

int b; 
char c = 'r'; 
b = (int)c; 
printf("%d",b); 
Questions connexes