Les chiffres des caractères ['0' .. '9'] sont-ils nécessaires pour avoir des valeurs numériques contiguës?

StackOverflow https://stackoverflow.com/questions/9416926

Question

Une implémentation C ++ doit définir le Chars '0' - '9' pour avoir des valeurs numériques contiguës, c'est-à-dire que:

'0' -> 0+n
'1' -> 1+n
 m  -> m+n
'9' -> 9+n

Je ne peux pas le trouver mentionné dans la documentation de isdigit ([Classification] (22.3.3.1 Classification des caractères)) *, je ne peux pas non plus le trouver dans la documentation des terres (mais peut-être que je n'ai pas l'air assez difficile).

Dans 2,3 ensembles de caractères, nous constatons que

Le jeu de caractères source de base se compose de 96 caractères: le caractère de l'espace, les caractères de contrôle représentant l'onglet horizontal, l'onglet vertical, le flux de formulaire et la nouvelle ligne, plus les 91 caractères graphiques suivants

Mais cela ne mentionne aucune commande (mais peut-être que je n'ai pas l'air assez fort).


*: Note de bas de page intéressante là-bas:

Lorsqu'il est utilisé dans une boucle, il est plus rapide de mettre en cache la facette ctype <> et de l'utiliser directement [au lieu d'Isdigit () et al, de terminer le commentaire], ou d'utiliser la forme vectorielle de ctype <> :: est.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top