共用方式為


字串轉換為數值函式

備註

strtod 系列的每個函式轉換 null 結尾字串為數值。 可用的函式列在下表。

功能

說明

strtod

轉換字串成雙精確度浮點數值。

strtol

將字串轉換成長整數

strtoul

將字串轉換成不帶正負號的長整數

_strtoi64

將字串轉換成 64 位元的 __int64 整數。

_strtoui64

將字串轉換為不帶正負號的 16 位元整數。__int64 integer

wcstodwcstolwcstoul_wcstoi64 分別為 strtodstrtolstrtoul_strtoi64 的寬字元版本。 對這些寬字元函式的每一個字串引數是寬字元字串;每個函式另有相同的行為與其單一位元組字元對應。

strtod 函式會採用兩個引數:第一個輸入字串和第二個指標結束轉換處理序的字元。 strtolstrtoul_strtoi64_strtoui64 在轉換處理序會以第三個引數為基數使用。

輸入字串是可解譯為指定類型的數值的字元序列。 函式會在它無法辨認成數字部分的第一個字元處,停止讀取字串。 這可能是結束的空字元。 對於 strtolstrtoul_strtoi64_strtoui64,此終止字元可以是第一個數字字元大於或等於使用者提供的基數。

如果使用者提供的對結束轉換字元的指標不是在呼叫階段設定為 NULL ,將儲存停止掃描的字元的指標。 如果轉換無法執行 (未找到有效的數字或指定了無效基底),則字串指標的值會儲存在那個位址。

strtod 必須是下列格式的字串:

[空白] [標記] [digits] [**.**digits][ {d | D | e | E}[sign]digits]

空白鍵 可能包含空格或定位字元,這些字元會被忽略;sign 為加號(+) 或減號 ();且 digits 是一個或多個十進位數字。 如果基數字元之前沒有數字,則基數字元之後必須至少出現一個數字。 十進位數字後面可以跟著指數,指數包括一個引入字母 (dDeE)) 和選擇性地一個帶正負號的整數。 如果指數部分或基數字元都沒有出現,則假設字串中最後一個數字後面有基數字元。 第一個不符合這個格式的字元會停止掃描。

strtolstrtoul_strtoi64_strtoui64 函式預期下列格式的字串:

[whitespace] [{+ | }] [0 [{ x | X }]] [digits]

如果基本引述介於 2 和 36 之間,則會使用它當做數字的底數。 如果是 0,初始字元參考由結束轉換指標用來判斷基底。 如果第一個字元是 0,而第二個字元不是「x」或「X」,字串會解譯為八進位整數;否則,它會被解譯為十進位數字。 如果第一個字元是 '0',而第二個字元不是「x」或「X」,字串會解譯為十六進位整數。 如果第一個字元是 1' 到 '9',字串會解譯為十進位整數。 字母 'a' 到 'z' (或 'A' 到 'Z") 被指派值 10 到 35;只允許指派值小於 基底 的字母。 strtoul_strtoui64 允許加號(+) 或減號 () 前置字元;前置減號指示傳回值為否定。

輸出值受地區設定的LC_NUMERIC 分類設定所影響。如需詳細資訊,請參閱 setlocale 。 這些函式沒有以 _l 後綴的版本在這些地區相依的行為上使用目前的地區設定,而以**_l** 後綴版本除了它們會使用傳入的地區設定參數之外運作相同。

當這些函式傳回的值會造成溢位或反向溢位,或轉換時,無法執行時,特殊情況傳回值如下所示:

功能

條件

傳回值

strtod

溢位

+/- HUGE_VAL

strtod

反向溢位或沒有轉換

0

strtol

+ Overflow

LONG_MAX

strtol

- Overflow

LONG_MIN

strtol

反向溢位或沒有轉換

0

_strtoi64

+ Overflow

_I64_MAX

_strtoi64

- Overflow

_I64_MIN

_strtoi64

No conversion

0

_strtoui64

溢位

_UI64_MAX

_strtoui64

No conversion

0

_I64_MAX, _I64_MIN_UI64_MAX 在 LIMITS.H. 定義。

wcstodwcstolwcstoul_wcstoi64_wcstoui64 分別為 strtodstrtolstrtoul_strtoi64_strtoui64寬字元版本;對結束轉換引數的指標對這些寬字元函式都是寬字元字串。 否則,這些寬字元函式都與相同的行為與其單一位元組字元對應。

請參閱

參考

資料轉換

地區設定

多位元組字元序列的解譯

浮點支援

atof、_atof_l、_wtof、_wtof_l