다음을 통해 공유


strtoll, _strtoll_l, wcstoll_wcstoll_l

문자열을 long long 값으로 변환합니다.

구문

long long strtoll(
   const char *strSource,
   char **endptr,
   int base
);
long long wcstoll(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
long long _strtoll_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
long long _wcstoll_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

매개 변수

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

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

base
사용할 기수입니다.

locale
사용할 로캘입니다.

반환 값

strtoll은 문자열 strSource로 표현되는 값을 반환합니다. 단, 해당 표현으로 인해 오버플로가 발생하는 경우에는 LLONG_MAX 또는 LLONG_MIN을 반환합니다. 변환을 수행할 수 없으면 이 함수는 0을 반환합니다. wcstollstrtoll와 동일한 값을 반환합니다.

LLONG_MAXLLONG_MIN은 LIMITS.H에서 정의됩니다.

strSourceNULL이거나 base가 0이 아니고 2보다 작거나 36보다 크면 errnoEINVAL로 설정됩니다.

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

설명

strtoll 함수는 strSourcelong long으로 변환합니다. 두 함수 모두 숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource 읽기를 중지합니다. 종료 null 문자일 수도 있으며, 첫 번째 숫자 문자가 1보다 크거나 같을 base수도 있습니다. wcstollstrtoll의 와이드 문자 버전입니다. 이 함수의 strSource 인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 동작합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcstoll strtoll strtoll wcstoll
_tcstoll_l _strtoll_l _strtoll_l _wcstoll_l

로캘의 LC_NUMERIC 범주 설정에 따라 radix 문자strSource의 인식이 결정됩니다. 자세한 내용은 다음_wsetlocale을 참조하세요setlocale. _l 접미사가 없는 함수는 현재 로캘을 사용하며, _strtoll_l_wcstoll_l은 전달된 로캘을 대신 사용한다는 점을 제외하면 접미사가 없는 해당 함수와 동일합니다. 자세한 내용은 Locale을 참조하세요.

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

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

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

whitespace는 공백과 탭 문자(무시됨)로 구성될 수 있습니다. digits는 하나 이상의 10진수이고 letters는 'a'~'z' 또는 'A'~'Z' 범위의 문자 하나 이상입니다. 이 양식에 맞지 않는 첫 번째 문자는 검사를 중지합니다. 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' 문자가 발견되면 검색은 중지됩니다.

요구 사항

루틴에서 반환된 값 필수 헤더
strtoll, _strtoll_l <stdlib.h>
wcstoll, _wcstoll_l <stdlib.h> 또는 <wchar.h>

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

참고 항목

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