Maison >développement back-end >C++ >Comment puis-je convertir efficacement un chiffre de caractère en un entier ?
Convertir un caractère en entier
Question :
Comment puis-je convertir efficacement un un seul caractère en une valeur entière ? Plus précisément, étant donné une chaîne de chiffres, je dois extraire chacun d’entre eux pour les utiliser dans les calculs. Existe-t-il une meilleure approche que d'utiliser atoi() ?
Réponse :
Plutôt que de convertir le caractère en chaîne avant d'appeler atoi(), vous pouvez exploiter la valeur numérique représentation des chiffres dans le codage des caractères. Dans la plupart des codages, y compris ASCII, UTF-x et autres, les codages de caractères pour les chiffres sont dans un ordre séquentiel, avec « 0 » mappé à 48 et « 9 » mappé à 57.
Cette connaissance vous permet de convertissez un caractère numérique en nombre entier en soustrayant simplement sa valeur ASCII de « 0 » (ou 48). Par exemple :
char c = '1'; int i = c - '0'; // i is now equal to 1, not '1'
Cela équivaut à :
char c = '1'; int i = c - 48; // i is now equal to 1, not '1'
Bien que les deux méthodes obtiennent le même résultat, la première (c - '0') est généralement considérée comme plus lisible en raison de sa simplicité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!