다음을 통해 공유


strtol, wcstol, _strtol_l, _wcstol_l

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

long strtol(
   const char *nptr,
   char **endptr,
   int base 
);
long wcstol(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
long _strtol_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

매개 변수

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

  • endptr
    스캔을 중지하는 문자에 대한 포인터입니다.

  • base
    사용할 번호 기준입니다.

  • locale
    사용할 로캘입니다.

반환 값

strtol 는 오버플로가 발생되는 시기를 제외하고 nptr 문자열을 나타내는 값을 반환합니다. 이러한 경우 LONG_MAX 또는 LONG_MIN를 반환합니다. strtol 은 변환을 수행할 수 없는 경우 0을 반환합니다. wcstol이 analogously 값을 strtol에 반환 합니다. 두 함수 모두 오버플로 또는 언더플로가 발생하면 errno가 ERANGE로 설정됩니다.

이러한 반환 코드와 다른 반환코드에 대한 자세한 정보는 _doserrno, errno, _sys_errlist, and _sys_nerr 를 참조하십시오.

설명

strtol 함수는 nptr를 long로 변환합니다. strtol는 숫자 부분으로 인식할 수 없는 첫 번째 문자에서 문자열 nptr 읽기를 중단합니다. 이는 null 종결 문자 이거나 base 와 같거나 더 큰 첫번째 숫자 일 수 있습니다.

wcstol는 strtol의 와이드 문자 버전이며, nptr 인수는 와이드 문자 문자열입니다. 그렇지 않다면 이러한 함수는 동일하게 작동합니다.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tcstol

strtol

strtol

wcstol

_tcstol_l

_strtol_l

_strtol_l

_wcstol_l

]현재 로캘의 LC_NUMERIC 범주 설정은 nptr*;* 에서 기수 문자의 인식 여부를 결정합니다. 자세한 내용은 setlocale을 참조하십시오. _L 접미사가 없는 함수는 현재 로캘을 사용합니다. _l 와 _strtol_l _wcstol_l는 대신 전달 된 로캘을 사용하는 경우를 제외하고 _l 접미사가 없는 함수에 대하여 동일합니다. 자세한 내용은 로캘을 참조하십시오.

endptr 가 NULL이 아닌 경우 스캔을 중지시키는 문자에 대한 포인터는 endptr가 가리키는 위치에 저장됩니다. 변환을 수행할 수 없는 경우(유효 숫자를 찾을 수 없거나 잘못된 기준이 지정됨), nptr 의 값은 endptr가 가리키는 위치에 저장됩니다.

strtol 는 nptr 가 아래 양식의 문자열을 가르킬거라고 예상합니다.

[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]

whitespace 는 공백과 탭 문자로 구성 될 수 있으며 무시 됩니다; digits 는 하나 이상의 10진수 숫자입니다. 이 폼에 맞지 않는 첫 번째 문자는 검색을 중지합니다. base가 2와 36 사이에 있으면 번호의 기준으로 사용됩니다. base가 0이 되는 경우 nptr가 지시하는 문자열의 최초 문자가 베이스 결정에 사용됩니다. 첫 번째 문자가 '0'이고 두 번째 문자가 'x' 또는 'X'가 아닌 경우 문자열은 8진수 정수로 해석됩니다. 첫 번째 문자가 '0'이고 두 번째 문자가 'x' 또는 'X'인 경우 문자열은 16진수 정수로 해석됩니다. 첫 번째 문자가 '1'부터 '9'이면 문자열은 10진수로 해석됩니다. 문자 'a'부터 'z'(또는 'A'부터 'Z')는 10-35 값이 할당됩니다. 즉, 할당된 값이 base 보다 작은 문자만이 허용됩니다. 기준 범위를 벗어나는 첫 번째 문자는 검색을 중지합니다. 예를 들어 base 가 0이고 스캔된 첫 번째 문자가 '0'이 되는 경우 8진수 정수가 되고 '8' 또는 '9' 문자가 스캔을 중지 시킬 수 있습니다.

요구 사항

루틴

필수 헤더

strtol

<stdlib.h>

wcstol

<stdlib.h> 또는 <wchar.h>

_strtol_l

<stdlib.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

strtod의 예제를 참조하십시오.

해당 .NET Framework 항목

System::Convert::ToInt64

참고 항목

참조

데이터 변환

로캘

localeconv

setlocale, _wsetlocale

문자열을 숫자 값으로 변환하는 함수

strtod, _strtod_l, wcstod, _wcstod_l

strtoul, _strtoul_l, wcstoul, _wcstoul_l

atof, _atof_l, _wtof, _wtof_l