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_MAX
或 INTMAX_MIN
,並將 errno
設成 ERANGE
。 如果沒有任何轉換可執行,函式會傳回 0。 wcstoimax
傳回類似 strtoimax
的值。
INTMAX_MAX
和 INTMAX_MIN
在 stdint.h 中定義。
如果 strSource
為 NULL
,或 base
為非零值且小於 2 或大於 36,則 errno
會設為 EINVAL
。
如需傳回碼的詳細資訊,請參閱errno
、 _doserrno
_sys_errlist
和 _sys_nerr
。
備註
strtoimax
函式會將 strSource
轉換成 intmax_t
。 strtoimax
的寬字元版本是 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