Chaîne aux fonctions de valeur numérique
Notes
Chaque fonction dans la famille de strtod convertit une chaîne terminée par le caractère NULL à une valeur numérique.les fonctions disponibles sont répertoriées dans le tableau suivant.
Fonction |
Description |
---|---|
strtod |
Chaîne de converti en valeur à virgule flottante en double précision |
strtol |
Chaîne de converti en entier long |
strtoul |
convertissez la chaîne au long entier non signé |
_strtoi64 |
Chaîne de converti en un entier 64 bits d' __int64 |
_strtoui64 |
Chaîne de converti en entier non signé 64 bits d' __int64 |
wcstod, wcstol, wcstoul, et _wcstoi64 sont des versions à caractères larges d' strtod, d' strtol, d' strtoul, et d' _strtoi64, respectivement.L'argument de chaîne à chacune de ces fonctions à caractère élargi est une chaîne à caractères larges ; chaque fonction se comporte comme son équivalent de caractères codés sur un seul octet sinon.
la fonction d' strtod prend deux arguments : la première est la chaîne d'entrée, et la deuxième un pointeur vers le caractère qui met fin au processus de conversion.strtol, strtoul, _strtoi64 et _strtoui64 prennent un troisième argument comme base numérique à utiliser dans le processus de conversion.
La chaîne d'entrée est une séquence de caractères qui peuvent être interprètes comme valeur numérique du type spécifié.Chaque fonction arrête de lire la chaîne au premier caractère qu'il ne peut pas reconnaître dans le cadre d'un nombre.Cela peut être le caractère NULL de fin.Pour strtol, strtoul, _strtoi64, et _strtoui64, ce caractère de fin peut également être le premier chiffre supérieur ou égal à la base numérique fournie par l'utilisateur.
Si le pointeur écrit par l'utilisateur à un caractère d'END-de-conversion n'est pas défini à NULL au moment de l'appel, un pointeur vers le caractère qui a arrêté l'analyse sera stocké à cet endroit à la place.Si aucune conversion ne peut être exécutée (aucun chiffre valide n'a été trouvé ou une base non valide a été spécifiée), la valeur du pointeur de chaîne est enregistrée dans cette adresse.
strtod attend une chaîne au format suivant :
[l'espace blanc] [signe] [digits] [**.**digits] [{d | D | e | e} []signedigits]
Un espace blanc peut se composer d'espaces ou des tabulations, qui sont ignorés ; le signe est plus (+) ou moins (-) ; et digits sont un ou plusieurs chiffres décimaux.Si chiffre ne s'affiche pas avant le caractère de base, au moins un doit apparaître après le caractère de base.Les chiffres décimaux peuvent être suivies par un exposant, qui se compose d'une lettre préliminaire (d, d, e, ou e) et éventuellement un entier signé.Si ni une partie d'exposant ni un caractère de base n'apparaît, considéré comme un caractère de base suit le dernier chiffre dans la chaîne.Le premier caractère qui ne rentre pas les arrêts de ce formulaire l'analyse.
strtol, strtoul, _strtoi64, et les fonctions d' _strtoui64 attendent une chaîne au format suivant :
[l'espace blanc] [{+ | -}] [0 [{ X | X }] []digits]
Si l'argument de base est comprise entre 2 et 36, il est utilisé comme base du nombre.Si elle est 0, les caractères initiaux référencés à par le pointeur d'END-de-conversion utilisés pour déterminer la base.Si le premier caractère est 0 et le deuxième caractère n'est pas « x » ou « X », la chaîne est interprétée comme un entier octal ; sinon, il est interprète comme un nombre décimal.Si le premier caractère est « 0 " et le deuxième caractère est « x » ou « X », la chaîne est interprétée comme un entier hexadécimal.Si le premier caractère est « 1 " à « 9 ", la chaîne est interprétée comme un entier décimal.Les lettres » à « z » (ou « A » à « Z ") sont assignées les valeurs 10 et 35 ; seuls les lettres dont les valeurs attribuées sont moins que la base sont autorisées.strtoul et _strtoui64 permettent a plus (+) ou moins le préfixe de signature (de-) ; un signe moins indique que la valeur de retour est négative.
la valeur de sortie est affectée par le paramètre du paramètre de catégorie d' LC_NUMERIC des paramètres régionaux ; consultez setlocale pour plus d'informations.Les versions de ces fonctions sans le suffixe de _l utilisent les paramètres régionaux définis pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe " _l sont identiques mais elles utilisent le paramètre de paramètres régionaux passé à la place.
Lorsque la valeur retournée par ces fonctions peut provoquer un dépassement de capacité ou un dépassement de capacité, ou lorsque la conversion n'est pas possible, les valeurs de cas particulier sont retournées comme suit :
Fonction |
Condition |
valeur retournée |
---|---|---|
strtod |
Dépassement de capacité |
+/- HUGE_VAL |
strtod |
Dépassement de capacité négatif ou aucune conversion |
0 |
strtol |
+ Dépassement de capacité |
LONG_MAX |
strtol |
- Dépassement de capacité |
LONG_MIN |
strtol |
Dépassement de capacité négatif ou aucune conversion |
0 |
_strtoi64 |
+ Dépassement de capacité |
_I64_MAX |
_strtoi64 |
- Dépassement de capacité |
_I64_MIN |
_strtoi64 |
aucune conversion |
0 |
_strtoui64 |
Dépassement de capacité |
_UI64_MAX |
_strtoui64 |
aucune conversion |
0 |
_I64_MAX, _I64_MIN, et _UI64_MAX sont définis dans LIMITS.H.
wcstod, wcstol, wcstoul, _wcstoi64, et _wcstoui64 sont des versions à caractères larges d' strtod, d' strtol, d' strtoul, d' _strtoi64, et d' _strtoui64, respectivement ; le pointeur à un argument d'END-de-conversion à chacune de ces fonctions à caractère élargi est une chaîne à caractères larges.Sinon, chacune de ces fonctions à caractère élargi se comporte comme son équivalent de caractères codés sur un seul octet.