Share via


strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l

將字串轉換成最大的受支援帶正負號整數類型的整數值。

語法

intmax_t strtoimax(
   const char *strSource,
   char **endptr,
   int base
);
intmax_t wcstoimax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
intmax_t _strtoimax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
intmax_t _wcstoimax_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

參數

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

endptr
停止掃描的字元指標。

base
要使用的數字基底。

locale
要使用的地區設定。

傳回值

strtoimax 會傳回字串 strSource 中的代表值,但表示法可能造成溢位時例外,在此情況下傳回 INTMAX_MAXINTMAX_MIN,並將 errno 設成 ERANGE。 如果沒有任何轉換可執行,函式會傳回 0。 wcstoimax 傳回類似 strtoimax 的值。

INTMAX_MAXINTMAX_MIN 在 stdint.h 中定義。

如果 strSourceNULL,或 base 為非零值且小於 2 或大於 36,則 errno 會設為 EINVAL

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

備註

strtoimax 函式會將 strSource 轉換成 intmax_tstrtoimax 的寬字元版本是 wcstoimax,其 strSource 引數是寬字元字串。 否則,這些函式的行為相同。 這兩個函式都會在無法辨識為數字的第一個字元停止讀取字串 strSource 。 它可能是終止的 Null 字元,或者可能是大於或等於 base 的第一個數值字元。

地區設定的 LC_NUMERIC 類別設定會決定 中 strSource 對基數位符的辨識;如需詳細資訊,請參閱 setlocale_wsetlocale 。 這些沒有 _l 尾碼的函式使用目前的地區設定,而 _strtoimax_l_wcstoimax_l 與對應之無 _l 尾碼的函式相同,只不過它們改用傳入的地區設定。 如需詳細資訊,請參閱 Locale

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

泛型文字常式對應

TCHAR.H 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

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

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

whitespace 包含可忽略的空格和定位字元;digits 是一或多個十進位數字;letters 是一或多個 'a' 到 'z' (或 'A' 到 'Z') 字母。 不符合此表單的第一個字元會停止掃描。 如果 base 介於 2 到 36 之間,則會將其作為數位的基底。 如果 base 為 0,則使用由 strSource 指向的字串起始字元來判斷基底。 如果第一個字元是 '0',而第二個字元不是 'x' 或 'X',字串就會解譯為八進位整數。 如果第一個字元為 '0',而第二個字元是 'x' 或 X',則字串會解譯為十六進位整數。 如果第一個字元為 '1' 到 '9',則字串會解譯為十進位整數。 字母 'a' 到 'z' (或 'A' 到 'Z') 被指派值 10 到 35,只允許指派值小於 base 的字母。 基底範圍外的第一個字元會停止掃描。 例如,如果 base 為 0,而第一個掃描到的字元是 '0',則假設為八進位整數,且 '8' 或 '9' 字元會停止掃描。

需求

常式 必要的標頭
strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l <inttypes.h>

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

另請參閱

資料轉換
地區設定
localeconv
setlocale, _wsetlocale
字串到數值函式
strtod, _strtod_l, wcstod, _wcstod_l
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
strtoumax, _strtoumax_l, wcstoumax, _wcstoumax_l
atof, _atof_l, _wtof, _wtof_l