Comment convertir un caractère ascii en int en C
Comment puis-je convertir un caractère ascii dans un int en C?
source d'informationauteur node ninja
Vous devez vous connecter pour publier un commentaire.
Comment puis-je convertir un caractère ascii dans un int en C?
source d'informationauteur node ninja
Vous devez vous connecter pour publier un commentaire.
Ce sujet:
Vous cherchez ceci:
Ou juste la conversion sans affectation:
Je suis d'accord pour Ashot et Cwan, mais peut-être que vous voulez convertir un fichier ascii-cipher comme '7' dans un int comme le 7?
Puis je recoomend:
ou, peut-être vous obtenez un avertissement,
corrigé après les commentaires, merci.
Utilisation de l'ASCII à l'entier de la fonction atoi():
Vous voulez dire que l'ASCII valeur ordinale? Essayez de type casting comme celui-ci:
Que tout le monde vous dit, vous pouvez le convertir directement... à MOINS que vous vouliez dire quelque chose comme "comment puis-je convertir un fichier ASCII caractère Étendu à ses UTF-16 ou UTF-32 valeur". C'est une tout autre question (l'une au moins aussi bon). Et un très difficile, si je me souviens bien, si vous utilisez uniquement la "pure" C. Ensuite, vous pouvez commencer ici: https://stackoverflow.com/questions/114611/what-is-the-best-unicode-library-for-c/114643#114643
(pour les caractères ASCII Étendu, je veux dire l'un des nombreux "extensions" à l'ASCII ensemble. Le 0 à 127 caractères de la base ASCII jeu sont directement convertible en Unicode, alors que le 128 à 255 ne le sont pas.). Par exemple ISO_8859-1 http://en.wikipedia.org/wiki/ISO_8859-1 est un 8 bits extensions de l'ASCII 7 bits de définir ou de les (très célèbre) pages de code 437 et 850.
Une valeur char en C est implicitement convertible en un int. e.g,
char c; ... printf("%d", c)
imprime le nombre décimal ASCII de la valeur dec
etint i = c;
met l'ASCII valeur entière dec
dansi
. Vous pouvez également convertir explicitement avec(int)c
. Si vous voulez dire quelque chose d'autre, comme la façon de convertir un fichier ASCII des chiffres d'un entier (int), qui seraitc - '0'
qui convertit implicitementc
int, puis soustrait la valeur ASCII de'0'
à savoir 48 (en C, les constantes de caractère tels que'0'
sont de type int, pas de char, pour des raisons historiques).Il n'est pas possible avec le standard C99 bibliothèqueà moins que vous écrire manuellement une carte à partir des constantes de caractère correspondant à l'ASCII valeur int.
Constantes de caractères en C comme
'a'
ne sont pas garantis pour être au format ASCII.C99 ne fait que des garanties au sujet de ces constantes, par exemple, que chiffres seront contigus.
Le mot ASCII n'apparaît que sur le C99 N1256 projet de norme dans les notes de pied de page et bas de page note 173) dit:
ce qui implique que l'ASCII n'est pas la seule possibilité