Konwertowanie ciągów na wartości
Uwagi
Każda funkcja w strtod z rodziny konwertuje ciąg zakończony wartością zerową wartość liczbową.Dostępne funkcje są wymienione w poniższej tabeli.
Funkcja |
Opis |
---|---|
strtod |
Konwertowanie ciągu na podwójnej precyzji wartość zmiennoprzecinkową wartości |
strtol |
Konwertowanie ciągu na liczba całkowita długa |
strtoul |
Konwertowanie ciągu na długa liczba całkowita bez znaku |
_strtoi64 |
Konwertowanie ciągu na 64-bitowych __int64 liczba całkowita |
_strtoui64 |
64-bitowe bez znaku przekonwertować ciągu na __int64 liczba całkowita |
wcstod, wcstol, wcstoul, and _wcstoi64 are wide-character versions of strtod, strtol, strtoul, and _strtoi64, respectively.Argument ciąg, każda z tych funkcji szeroko charakter jest ciąg znaków wide; Każda funkcja zachowuje się identycznie jak jego odpowiednik bajt — jednoznakowy inaczej.
strtod Funkcja ma dwa argumenty: ciąg wejściowy jest pierwszy i drugi wskaźnik do znaku, który kończy proces konwersji.strtol, strtoul, _strtoi64 i _strtoui64 jako podstawowy numer do użycia w procesie konwersji przyjąć trzeciego argumentu.
Ciąg wejściowy jest sekwencją znaków, które mogą być interpretowane jako wartość liczbowa określonego typu.Każda funkcja przestaje czytać ciąg przy pierwszego znaku, który nie może rozpoznać jako elementu liczby.Może to być zakończone znakiem null.Dla strtol, strtoul, _strtoi64, i _strtoui64, ten znak odcinające można także pierwszy znak numerycznych większa lub równa liczbie dostarczone przez użytkownika podstawowego.
Jeśli nie ustawiono dostarczone przez użytkownika wskaźnika do znaku końca konwersji wartości NULL w momencie wywołania wskaźnik znak, który przestał skanowanie będą tam przechowywane w zamian.Jeśli konwersja nie może być wykonywana (nie znaleziono żadnych prawidłowych cyfr lub określono nieprawidłowy base), wartość wskaźnika ciąg jest przechowywana pod tym adresem.
strtodspodziewa się ciągu następującą postać:
światła] sign] digits] **.**digits [ {d | D | e | E}signdigits
A światła może składać się z znaki spacji lub tabulatorów, które są ignorowane; sign is either plus (+) or minus (–); i digits są jeden lub więcej cyfr dziesiętnych.Jeśli żadna cyfra pojawia się przed znakiem podstawy, co najmniej jedna musi być umieszczona po znaku podstawy.Cyfry dziesiętne może następować wykładniku, który składa się z listem (d, D, e, lub E) i opcjonalnie całkowita.Jeśli wykładnik ani znak podstawy nie pojawia się, przyjmuje się, że znak podstawy następuje po ostatniej cyfrze w ciągu.Pierwszy znak, który nie mieści się w tym formularzu zatrzymuje skanowanie.
strtol, strtoul, _strtoi64, I _strtoui64 funkcje oczekiwać ciąg następującą postać:
światła[{+ | –}]0 { x | X}]] digits
Jeśli argument podstawowej jest między 2 a 36, następnie służy jako podstawa numer.Jeśli jest 0, początkowe znaki odwołuje się do wskaźnika celu konwersji są używane do określenia podstawy.Jeśli pierwszy znak jest równa 0, a nie jest drugi znak "x" lub "X", ciąg jest interpretowany jako całkowitą liczbę ósemkową; w przeciwnym razie jest interpretowany jako liczba dziesiętna.Jeśli pierwszym znakiem jest ,,0", a drugim znakiem jest ,,x" lub ,,X", ciąg jest interpretowany jako szesnastkowa liczba całkowita.Jeśli pierwszym znakiem jest ,,1" do ,,9", ciąg jest interpretowany jako dziesiętna liczba całkowita.Litery od "" do "z" (lub "" do "Z") są przypisane wartości 10 do 35; tylko litery, których wartości przypisane są mniej niż podstawowych są dozwolone.strtouli _strtoui64 pozwalają plus (+) lub minus (—) prefiks znak; wiodący znak minus wskazuje, że wartość zwracana jest zanegowane.
Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_NUMERIC ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji.Wersje tych funkcji, które nie mają przyrostka _l używają bieżących ustawień regionalnych dla wszelkich zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że w zamian korzystają z przekazanego parametru ustawień regionalnych.
Kiedy wartość zwracana przez te funkcje spowodowałoby przepełnienie lub niedomiar lub konwersja nie jest możliwe, specjalne wartości case są zwracane jak pokazano:
Funkcja |
Warunek |
Wartość zwracana |
---|---|---|
strtod |
Przepełnienie |
+/- HUGE_VAL |
strtod |
Niedopełnienie lub brak konwersji |
0 |
strtol |
+ Przepełnienia |
LONG_MAX |
strtol |
-Przepełnienie |
LONG_MIN |
strtol |
Niedopełnienie lub brak konwersji |
0 |
_strtoi64 |
+ Przepełnienia |
_I64_MAX |
_strtoi64 |
-Przepełnienie |
_I64_MIN |
_strtoi64 |
Brak konwersji |
0 |
_strtoui64 |
Przepełnienie |
_UI64_MAX |
_strtoui64 |
Brak konwersji |
0 |
_I64_MAX, _I64_MIN, i _UI64_MAX są zdefiniowane w granicach.H.
wcstod, wcstol, wcstoul, _wcstoi64, and _wcstoui64 are wide-character versions of strtod, strtol, strtoul, _strtoi64, and _strtoui64, respectively; wskaźnik, aby argument każda z tych funkcji znakiem końca konwersji jest ciąg znaków wide.W przeciwnym razie każda z tych funkcji szeroko charakter działa identycznie z jego odpowiednikiem bajt — jednoznakowy.
Zobacz też
Informacje
Interpretacja wielobajtowych sekwencji znaków