strtoul, _strtoul_l, wcstoul, _wcstoul_l

將字串轉換為不帶正負號的長整數值。

語法

unsigned long strtoul(
   const char *strSource,
   char **endptr,
   int base
);
unsigned long _strtoul_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned long wcstoul(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
unsigned long _wcstoul_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

參數

strSource
以 Null 終止的待轉換字串。

endptr
停止掃描的字元指標。

base
要使用的數字基底。

locale
要使用的地區設定。

傳回值

若有的話,strtoul 會傳回已轉換的值,或在發生溢位時傳回 ULONG_MAX。 如果沒有任何轉換可執行,strtoul 會傳回 0。 wcstoul 傳回類似 strtoul 的值。 如果發生溢位或反向溢位,這兩個函式的 errno 都會設為 ERANGE

如需傳回碼的詳細資訊,請參閱 errno_doserrno_sys_errlist_sys_nerr

備註

所有這些函式都會將輸入字串 strSource 轉換成 unsigned long

strtoul 停止在無法辨識為數字一部分的第一個字元讀取字串 strSource 。 這個字元可能是終止 NULL 的 ,或是第一個大於或等於 base 的數位字元。 LC_NUMERIC地區設定的類別設定會決定 中 strSource 基底字元的辨識;如需詳細資訊,請參閱 setlocalestrtoulwcstoul 使用目前的地區設定,_strtoul_l_wcstoul_l 也一樣,只不過它們改用傳入的地區設定。 如需詳細資訊,請參閱 Locale

如果 endptr 不是 NULL ,則會將停止掃描的字元指標儲存在 所 endptr 指向的位置。 如果不能執行任何轉換 (找不到任何有效的數字或指定了無效的基底),則 strSource 的值會儲存在由 endptr 指向的位置。

wcstoul 是寬字元版本的 strtoul,其 strSource 引數是寬字元字串。 否則,這些函式的行為相同。

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

TCHAR.H 常規 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tcstoul strtoul strtoul wcstoul
_tcstoul_l strtoul_l _strtoul_l _wcstoul_l

strtoul 需要 strSource 指向格式如下的字串︰

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

whitespace可能包含空格和定位字元,這些字元會被忽略。 digits 是一或多個十進位數。 letters 是一或多個透過 的字母 az (或 AZ )。 不符合此表單的第一個字元會停止掃描。 如果 base 介於 2 到 36 之間,則會將其作為數位的基底。 如果 base 為 0,則使用由 strSource 指向的字串起始字元來判斷基底。 如果第一個字元是 0,而第二個字元不是 xX ,則字串會解譯為八進位整數。 如果第一個字元是 '0',而第二個字元是 xX ,則字串會解譯為十六進位整數。 如果第一個字元為 '1' 到 '9',則字串會解譯為十進位整數。 透過 (或 A 到 ) 的字母 az 會指派值 10 到 35;只有指派值小於 base 的字母才 Z 允許。 基底範圍外的第一個字元會停止掃描。 例如,如果 base 為 0,而第一個掃描到的字元是 '0',則假設為八進位整數,且 '8' 或 '9' 字元會停止掃描。 strtoul 允許加號 (+) 或減號 (-) 符號前置詞,前置減號表示傳回值為負數。

需求

常式 必要的標頭
strtoul <stdlib.h>
wcstoul <stdlib.h><wchar.h>
_strtoul_l <stdlib.h>
_wcstoul_l <stdlib.h><wchar.h>

如需相容性詳細資訊,請參閱相容性

範例

請參閱 的 strtod 範例。

另請參閱

資料轉換
地區設定
localeconv
setlocale, _wsetlocale
字串到數值函式
strtod, _strtod_l, wcstod, _wcstod_l
strtol, wcstol, _strtol_l, _wcstol_l
atof, _atof_l, _wtof, _wtof_l