다음을 통해 공유


strtoumax, _strtoumax_l, wcstoumax_wcstoumax_l

문자열을 지원되는 가장 큰 부호 없는 정수 형식의 정수값으로 변환합니다.

구문

uintmax_t strtoumax(
   const char *strSource,
   char **endptr,
   int base
);
uintmax_t _strtoumax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
uintmax_t wcstoumax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
uintmax_t _wcstoumax_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

매개 변수

strSource
변환할 Null 종료 문자열입니다.

endptr
검색을 중지하는 문자에 대한 포인터입니다.

base
사용할 기수입니다.

locale
사용할 로캘입니다.

반환 값

strtoumax은 변환된 값(있는 경우)을 반환하거나 오버플로 시에는 UINTMAX_MAX를 반환합니다. 변환을 수행할 수 없으면 strtoumax은 0을 반환합니다. wcstoumaxstrtoumax와 동일한 값을 반환합니다. 두 함수에서 모두 오버플로 또는 언더플로가 발생하면 errnoERANGE로 설정됩니다.

반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno._sys_nerr_sys_errlist_doserrno

설명

이러한 각 함수는 입력 문자열 strSourceuintmax_t 정수값으로 변환합니다.

strtoumax 는 숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource 을 읽는 것을 중지합니다. 종료 null 문자일 수도 있으며, 첫 번째 숫자 문자가 1보다 크거나 같을 base수도 있습니다. 로캘의 LC_NUMERIC 범주 설정에 따라 strSource의 기수 문자 인식이 결정됩니다. 자세한 내용은 setlocale, _wsetlocale을 참조하세요. strtoumaxwcstoumax는 현재 로캘을 사용합니다. _strtoumax_l_wcstoumax_l은 전달된 로캘을 대신 사용한다는 점을 제외하면 동일합니다. 자세한 내용은 Locale을 참조하세요.

그렇지 않은 NULL경우 endptr 검색을 중지한 문자에 대한 포인터가 가리키는 endptr위치에 저장됩니다. 올바른 숫자를 찾을 수 없거나 잘못된 밑을 지정하여 변환을 수행할 수 없는 경우에는 strSource의 값이 endptr에서 가리키는 위치에 저장됩니다.

strtoumax의 와이드 문자 버전은 wcstoumax입니다. 이 함수의 strSource 인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 동작합니다.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcstoumax strtoumax strtoumax wcstoumax
_tcstoumax_l strtoumax_l _strtoumax_l _wcstoumax_l

strtoumax에서는 strSource이 다음 형식의 문자열을 가리켜야 합니다.

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

A는 whitespace 무시되는 공백 및 탭 문자로 구성될 수 있습니다. digits 은 하나 이상의 소수 자릿수입니다. letters 는 'a'에서 'z'(또는 'Z'를 통한 'A')의 문자 중 하나 이상입니다. 이 양식에 맞지 않는 첫 번째 문자는 검사를 중지합니다. 2에서 36 사이이면 base 숫자의 기준으로 사용됩니다. base가 0인 경우에는 strSource에서 가리키는 문자열의 초기 문자를 사용하여 밑을 결정합니다. 첫 번째 문자가 '0'이고 두 번째 문자가 'x' 또는 'X'가 아닌 경우 문자열은 8진수 정수로 해석됩니다. 첫 번째 문자가 '0'이고 두 번째 문자가 'x' 또는 'X'이면 문자열은 16진수 정수로 해석됩니다. 첫 번째 문자가 '1'~'9' 이면 문자열은 10진수 정수로 해석됩니다. 문자 'a'~'z' 또는 'A'~'Z'에는 값 10~35가 할당됩니다. 할당된 값이 base보다 작은 문자만 사용할 수 있습니다. 밑의 범위를 벗어난 첫 번째 문자가 발견되면 검색이 중지됩니다. 예를 들어 base가 0인데 처음 검색된 문자가 '0'이면 문자열은 8진수 정수로 간주되며 '8' 또는 '9' 문자가 발견되면 검색은 중지됩니다. strtoumax 는 더하기 기호(+) 또는 빼기 기호(-) 접두사를 허용합니다. 선행 빼기 기호는 반환 값이 변환된 문자열의 절대 값에 대한 두 가지의 보수임을 나타냅니다.

요구 사항

루틴에서 반환된 값 필수 헤더
strtoumax, wcstoumax, _strtoumax_l_wcstoumax_l <inttypes.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

strtod에 대한 예를 참조하세요.

참고 항목

데이터 변환
Locale
localeconv
setlocale, _wsetlocale
문자열에서 숫자 값 함수로
strtod, _strtod_l, wcstod_wcstod_l
strtoimax, _strtoimax_l, wcstoimax_wcstoimax_l
strtol, wcstol, _strtol_l_wcstol_l
strtoul, _strtoul_l, wcstoul_wcstoul_l
strtoll, _strtoll_l, wcstoll_wcstoll_l
atof, _atof_l, _wtof_wtof_l