_strtoui64
, _wcstoui64
, _strtoui64_l
_wcstoui64_l
문자열을 unsigned __int64
값으로 변환합니다.
구문
unsigned __int64 _strtoui64(
const char *strSource,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
매개 변수
strSource
변환할 Null 종료 문자열입니다.
endptr
검색을 중지하는 문자에 대한 포인터입니다.
base
사용할 기수입니다.
locale
사용할 로캘입니다.
반환 값
_strtoui64
는 문자열 strSource
로 표현되는 값을 반환합니다. 단, 해당 표현으로 인해 오버플로가 발생하는 경우에는 _UI64_MAX
를 반환합니다. 변환을 수행할 수 없으면 _strtoui64
은 0을 반환합니다.
_UI64_MAX
에 정의되어 있습니다.LIMITS.H
strSource
이 NULL
이거나 base
가 0이 아니고 2보다 작거나 36보다 크면 errno
는 EINVAL
로 설정됩니다.
반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno
._sys_nerr
_sys_errlist
_doserrno
설명
_strtoui64
함수는 strSource
을 unsigned __int64
로 변환합니다. _wcstoui64
은 _strtoui64
의 와이드 문자 버전입니다. 이 함수의 strSource
인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 동작합니다.
두 함수 모두 숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource
읽기를 중지합니다. 종료 null 문자일 수도 있으며, 첫 번째 숫자 문자가 1보다 크거나 같을 base
수도 있습니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 변경하려면 CRT의 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wcstoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wcstoui64_l |
현재 로캘의 LC_NUMERIC
범주 설정에 따라 radix 문자 strSource
의 인식이 결정됩니다. 자세한 내용은 다음을 참조하세요 setlocale
. _l
접미사가 없는 함수는 현재 로캘을 사용하며, _strtoui64_l
및 _wcstoui64_l
은 전달된 로캘을 대신 사용한다는 점을 제외하면 _l
접미사가 없는 해당 함수와 동일합니다. 자세한 내용은 Locale을 참조하세요.
그렇지 않은 NULL
경우 endptr
검색을 중지한 문자에 대한 포인터가 가리키는 위치에 endptr
저장됩니다. 올바른 숫자를 찾을 수 없거나 잘못된 밑을 지정하여 변환을 수행할 수 없는 경우에는 strSource
의 값이 endptr
에서 가리키는 위치에 저장됩니다.
_strtoui64
에서는 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' 문자가 발견되면 검색은 중지됩니다.
요구 사항
함수 | 필수 헤더 |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> 또는 <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_strtoui64.c
#include <stdio.h>
unsigned __int64 atoui64(const char *szUnsignedInt) {
return _strtoui64(szUnsignedInt, NULL, 10);
}
int main() {
unsigned __int64 u = atoui64("18446744073709551615");
printf( "u = %I64u\n", u );
}
u = 18446744073709551615
참고 항목
데이터 변환
Locale
localeconv
setlocale
, _wsetlocale
문자열에서 숫자 값 함수로
strtod
, _strtod_l
, wcstod
_wcstod_l
strtoul
, _strtoul_l
, wcstoul
_wcstoul_l
atof
, _atof_l
, _wtof
_wtof_l