Zeichenfolge mit den Funktionen des numerischen Werts
Hinweise
Jede Funktion in der strtod Familie wird eine auf NULL endende Zeichenfolge in einen numerischen Wert.Die verfügbaren Funktionen werden in der folgenden Tabelle aufgeführt.
Funktion |
Beschreibung |
---|---|
strtod |
Konvertieren von Gleitkommazahlen mit doppelter Genauigkeit auf Zeichenfolge |
strtol |
Konvertieren der Zeichenfolge langen ganzen Zahl |
strtoul |
Konvertieren der Zeichenfolge langen ganzen Zahl ohne Vorzeichen |
_strtoi64 |
Konvertieren in 64-Bit- __int64 Zeichenfolge ganze Zahl |
_strtoui64 |
Konvertieren in 64-Bit- __int64 Zeichenfolge ganze Zahl ohne Vorzeichen |
wcstod, wcstol, wcstoulund _wcstoi64 sind Breitzeichenversionen von strtod, strtol, strtoulund _strtoi64.Das Zeichenfolgenargument für jede dieser Breitzeichen Funktionen ist eine Zeichenfolge mit Breitzeichen. einzelnen Funktionen verhält sich genauso wie einem Einzelbytezeichen andernfalls äquivalent.
Die strtod-Funktion akzeptiert zwei Argumente: Das erste Element ist die Eingabezeichenfolge und die zweite ein Zeiger auf das Zeichen, das den Konvertierungsprozess beendet.strtol, strtoul, _strtoi64 und nehmen _strtoui64 ein drittes Argument als Basis für die Verwendung im Konvertierungsprozess.
Die Eingabezeichenfolge ist eine Folge von Zeichen, die als numerische Wert des angegebenen Typs interpretiert werden können.Jede Funktion beendet, die Zeichenfolge am ersten Zeichen zu lesen, das sie nicht als Teil einer Zahl erkennen kann.Dies ist möglicherweise NULL.Für strtol, strtoul, _strtoi64und Endzeichen _strtoui64kann es sich um das erste numerische Zeichen größer oder gleich der vom Benutzer angegebenen Basis werden.
Wenn der vom Benutzer angegebenen Zeiger auf ein END-von Konvertierung nicht NULL Zeichen an der Gesprächszeit festgelegt ist, wird ein Zeiger auf das Zeichen, das die Überprüfung beendet wurde, stattdessen dort gespeichert.Wenn keine Konvertierung ausgeführt werden kann (keine gültigen Ziffern gefunden wurden, oder eine ungültige Basis) angegeben wurde, wird der Wert des zeigers Zeichenfolgen an dieser Adresse gespeichert.
strtod erwartet eine Zeichenfolge im folgenden Format:
Leerraum[digitsZeichen[] - [] - []**.**digits] [{d | D | e | E} [Zeichen]digits]
Leerraum bestehen möglicherweise Leerzeichen oder Tabulatorzeichen, die ignoriert werden. Zeichen ist entweder**+(plus) oder - (–**). digits sind und eine oder mehrere Dezimalstellen.Wenn keine Ziffern vor der Basis von Zeichen angezeigt werden, muss mindestens nach dem Basis Zeichen vorkommen.Die Dezimalstellen folgen können von einem Exponenten, der aus einem Zeichen bestehen (dEinführung, e, Doder E) und optional eine Zahl mit Vorzeichen.Wenn weder ein Exponenten immer noch Bestandteil eines Basis Zeichen angezeigt wird, wird ein Basis wird angenommen, dass der letzte Ziffer in der Zeichenfolge zu befolgen.Das erste Zeichen, das nicht das Formular passt, beendet die Überprüfung.
strtol, strtoul, _strtoi64und _strtoui64-Funktionen erwarten eine Zeichenfolge im folgenden Format:
Leerraum[] [{+ | –}] [0 [{ x | X }]] [digits]
Wenn das niedrige Argument zwischen 2 und 36 liegt, wird er als Basis der Zahl verwendet.Wenn 0 (null) ist, werden die ersten Zeichen, gefolgt von dem END-von Konvertierung Zeiger verwiesen werden, die Basis zu bestimmen.Wenn das erste Zeichen 0 ist und das zweite Zeichen „x“ oder „X“ ist, wird die Zeichenfolge als oktale ganze Zahl interpretiert. Andernfalls wird sie als decimal interpretiert.Wenn das erste Zeichen „0 " festgelegt ist, und das zweite Zeichen „x“ oder „X“ ist, wird die Zeichenfolge als ganze Hexadezimalzahl interpretiert.Wenn das erste Zeichen „1 " bis „9 " ist, wird die Zeichenfolge als ganze Dezimalzahl interpretiert.Der Buchstabe“ bis „z“ (oder „A“ durch „Z ") werden die Werte 10 und 35 zugewiesen. nur alphabetische Zeichen, deren bestimmte Werte kleiner sind als Basis sind zulässig.strtoul und _strtoui64 ermöglichen (plus einer**+**) oder Minuszeichen (–-des präfixes) Zeichen. ein führendes Minuszeichen gibt an, dass der Rückgabewert negiert wird.
Der Ausgabewert wurde durch die Einstellung der LC_NUMERIC Kategorieeinstellung des Gebietsschemas betroffen. Weitere Informationen finden Sie unter setlocale .Die Versionen dieser Funktionen ohne das Suffix verwenden _l dem aktuellen Gebietsschema für dieses gebietsschemaabhängige Verhalten. Versionen mit dem _l Suffix sind identisch, mit der Ausnahme, dass sie verwenden Sie stattdessen den Gebietsschemaparameter, der übergeben wird.
Als Wert, der von dieser Funktion zurückgegeben wurde, einen Überlauf oder einen Unterlauf verursachen würden oder wenn die Konvertierung nicht möglich ist, werden Werte des speziellen Falls z) zurückgegeben:
Funktion |
Bedingung |
Zurückgegebener Wert |
---|---|---|
strtod |
Overflow |
+/- HUGE_VAL |
strtod |
Unterlauf oder keine Konvertierung |
0 |
strtol |
+ Überlauf |
LONG_MAX |
strtol |
- Überlauf |
LONG_MIN |
strtol |
Unterlauf oder keine Konvertierung |
0 |
_strtoi64 |
+ Überlauf |
_I64_MAX |
_strtoi64 |
- Überlauf |
_I64_MIN |
_strtoi64 |
Keine Konvertierung |
0 |
_strtoui64 |
Overflow |
_UI64_MAX |
_strtoui64 |
Keine Konvertierung |
0 |
_I64_MAX, _I64_MINund _UI64_MAX werden in LIMITS.H. definiert.
wcstod, wcstol, wcstoul, _wcstoi64und _wcstoui64 sind Breitzeichenversionen von strtod, strtol, strtoul, _strtoi64und _strtoui64erzeugt. Zeiger auf einen END-von Konvertierung Argument zu jeder dieser Breitzeichen Funktionen ist eine Zeichenfolge mit Breitzeichen.Andernfalls verhält sich jede dieser Breitzeichen Funktionen identisch mit dem Einzelbytezeichen äquivalent.