다음을 통해 공유


_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l

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

unsigned __int64 _strtoui64(
   const char *nptr,
   char **endptr,
   int base 
);
unsigned __int64 _wcstoui64(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base 
);
unsigned __int64 _strtoui64_l(
   const char *nptr,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned __int64 _wcstoui64(
   const wchar_t *nptr,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

매개 변수

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

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

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

  • locale
    사용할 로캘입니다.

반환 값

_strtoui64은 오버플로가 발생하는 시기를 제외하고 문자열 nptr 을 나타내는 값을 반환합니다. 이런 경우 _UI64_MAX 을 반환합니다. 변환을 수행 할 수 없는 경우 _strtoui64은 0을 반환합니다.

_UI64_MAX 은 LIMITS.H에 정의됩니다.

nptr이 NULL이 되거나 base가 0이 아니고 2보다 작거나 36보다는 클 경우 errno는 EINVAL로 설정됩니다.

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

설명

_strtoui64함수는 nptr 를 unsigned __int64 로 변환합니다. _wcstoui64는 _strtoui64의 와이드 문자 버전이며, nptr 인수는 와이드 문자 문자열입니다. 그렇지 않으면 이러한 함수는 동일하게 작동합니다.

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

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tcstoui64

_strtoui64

_strtoui64

_wstrtoui64

_tcstoui64_l

_strtoui64_l

_strtoui64_l

_wstrtoui64_l

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

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

_strtoui64 는 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' 문자가 스캔을 중지 시킬 수 있습니다.

요구 사항

루틴

필수 헤더

_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 );
}
  

참고 항목

참조

데이터 변환

로캘

localeconv

setlocale, _wsetlocale

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

strtod, _strtod_l, wcstod, _wcstod_l

strtoul, _strtoul_l, wcstoul, _wcstoul_l

atof, _atof_l, _wtof, _wtof_l