strtol
, wcstol
, _strtol_l
_wcstol_l
문자열을 정수 값으로 long
변환합니다.
구문
long strtol(
const char *string,
char **end_ptr,
int base
);
long wcstol(
const wchar_t *string,
wchar_t **end_ptr,
int base
);
long _strtol_l(
const char *string,
char **end_ptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *string,
wchar_t **end_ptr,
int base,
_locale_t locale
);
매개 변수
string
변환할 Null 종료 문자열입니다.
end_ptr
마지막으로 해석된 문자 뒤의 문자를 가리키도록 설정된 출력 매개 변수입니다. 무시됨(있는 경우 NULL
)
base
사용할 기수입니다.
locale
사용할 로캘입니다.
반환 값
strtol
, wcstol
, _strtol_l
및 _wcstol_l
에 표시된 값을 반환합니다 string
. 변환이 가능하지 않으면 0을 반환합니다. 표현으로 인해 오버플로가 발생하면 반환 LONG_MAX
되거나 LONG_MIN
.
errno
은 오버플로 ERANGE
또는 언더플로가 발생하는 경우로 설정됩니다. 이 값은 다음과 같은 경우 string
로 EINVAL
설정됩니다NULL
. 또는 0이 아니고 2보다 작거나 36보다 큰 경우 base
및 기타 반환 코드에 대한 ERANGE
자세한 내용은 , _doserrno
, _sys_errlist
및_sys_nerr
를 참조하세요errno
. EINVAL
설명
strtol
, wcstol
, _strtol_l
및 _wcstol_l
함수는 .로 long
변환 string
됩니다. 숫자의 일부로 인식되지 않는 첫 번째 문자에서 읽기 string
를 중지합니다. 종결 null 문자이거나 첫 번째 영숫자 문자가 1보다 크거나 같을 수 있습니다 base
.
wcstol
및 _wcstol_l
는 strtol
및 _strtol_l
의 와이드 문자 버전입니다. 해당 string
인수는 와이드 문자열입니다. 이러한 함수는 동일하게 동작하고_strtol_l
, 그렇지 않으면 동일하게 strtol
동작합니다. 로캘의 LC_NUMERIC
범주 설정은 에 있는 반지름 문자(소수점 또는 소수점) string
의 인식을 결정합니다. 함수 및 strtol
wcstol
현재 로캘을 사용합니다. _strtol_l
전달 _wcstol_l
된 로캘을 대신 사용합니다. 자세한 내용은 [setlocale
] 및 로캘을 참조하세요.
이 경우 end_ptr
NULL
무시됩니다. 그렇지 않으면 검색을 중지한 문자에 대한 포인터가 가리키는 위치에 end_ptr
저장됩니다. 유효한 숫자를 찾을 수 없거나 잘못된 기준이 지정된 경우에는 변환이 불가능합니다. string
값은 다음이 가리키는 end_ptr
위치에 저장됩니다.
strtol
에서는 string
이 다음 형식의 문자열을 가리켜야 합니다.
[
whitespace
] [{+
|-
}] [0
[{x
|X
}]] [alphanumerics
]
대괄호([ ]
) 서라운드 선택 요소입니다. 단일 요소에 대한 중괄호 및 세로 막대({ | }
) 서라운드 대안입니다. whitespace
는 무시되는 공백 및 탭 문자로 구성될 수 있습니다. alphanumerics
는 10진수 또는 문자 'a'
( 'z'
또는 'A'
'Z'
통과)입니다. 이 양식에 맞지 않는 첫 번째 문자는 검사를 중지합니다. 2에서 36 사이이면 base
숫자의 기준으로 사용됩니다. 이 0
경우 base
가리키는 문자열 string
의 초기 문자가 기본을 결정하는 데 사용됩니다. 첫 번째 문자가 0
고 두 번째 문자가 아닌 'x'
'X'
경우 문자열은 8진수 정수로 해석됩니다. 첫 번째 문자가 '0'
두 번째 문자 'x'
이거나 'X'
문자열이 16진수 정수로 해석됩니다. 첫 번째 문자가 '1'
통과 '9'
하면 문자열이 10진수 정수로 해석됩니다. 문자 'a'
통과 'z'
(또는 'A'
통과 'Z'
)에는 10에서 35까지의 값이 할당됩니다. 검색에서는 값이 .보다 base
작은 문자만 허용합니다. 밑의 범위를 벗어난 첫 번째 문자가 발견되면 검색이 중지됩니다. 예를 들어 .string
"01"
0
이 경우 base
스캐너는 8진수 정수라고 가정합니다. 또는 '8'
'9'
문자가 검사를 중지합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> 또는 <wchar.h> |
_strtol_l |
<stdlib.h> |
_wcstol_l |
<stdlib.h> 또는 <wchar.h> |
_strtol_l
및 _wcstol_l
함수는 표준 C 라이브러리의 일부가 아닌 Microsoft 전용입니다. 호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
strtod
에 대한 예를 참조하세요.
참고 항목
데이터 변환
Locale
localeconv
setlocale
, _wsetlocale
문자열에서 숫자 값 함수로
strtod
, _strtod_l
, wcstod
_wcstod_l
strtoll
, _strtoll_l
, wcstoll
_wcstoll_l
strtoul
, _strtoul_l
, wcstoul
_wcstoul_l
atof
, _atof_l
, _wtof
_wtof_l