Namespaces
Variants

std:: stoul, std:: stoull

From cppreference.net
std::basic_string
헤더에 정의됨 <string>
unsigned long stoul ( const std:: string & str,
std:: size_t * pos = nullptr, int base = 10 ) ;
(1) (C++11부터)
unsigned long stoul ( const std:: wstring & str,
std:: size_t * pos = nullptr, int base = 10 ) ;
(2) (C++11부터)
unsigned long long stoull ( const std:: string & str,
std:: size_t * pos = nullptr, int base = 10 ) ;
(3) (C++11부터)
unsigned long long stoull ( const std:: wstring & str,
std:: size_t * pos = nullptr, int base = 10 ) ;
(4) (C++11부터)

문자열 str 에서 부호 없는 정수 값을 해석합니다.

변환 함수 내부의 포인터 ptr char * (1,3) 타입 또는 wchar_t * (2,4) 타입으로 설정합니다.

1) std:: strtoul ( str. c_str ( ) , & ptr, base ) 를 호출합니다.
2) std:: wcstoul ( str. c_str ( ) , & ptr, base ) 를 호출합니다.
3) std:: strtoull ( str. c_str ( ) , & ptr, base ) 를 호출합니다.
4) std:: wcstoull ( str. c_str ( ) , & ptr, base ) 를 호출합니다.

(std::isspace를 호출하여 식별되는) 모든 공백 문자들을 버리고 첫 번째 비-공백 문자를 찾을 때까지 진행한 후, 유효한 base-n (여기서 n= base ) 부호 없는 정수 숫자 표현을 형성하기 위해 가능한 많은 문자들을 취하여 정수 값으로 변환합니다. 유효한 부호 없는 정수 값은 다음 부분들로 구성됩니다:

  • (선택 사항) 양수 또는 음수 부호
  • (선택 사항) 접두사 ( 0 ) - 8진법 기수 표시 (기수가 8 또는 0 인 경우에만 적용됨)
  • (선택 사항) 접두사 ( 0x 또는 0X ) - 16진법 기수 표시 (기수가 16 또는 0 인 경우에만 적용됨)
  • 숫자 시퀀스

base에 대한 유효한 값의 집합은 {0, 2, 3, ..., 36} 입니다. base- 2 정수에 대한 유효한 숫자 집합은 {0, 1} , base- 3 정수에 대한 유효한 숫자 집합은 {0, 1, 2} 입니다. 10 보다 큰 base의 경우, 유효한 숫자에는 알파벳 문자가 포함되며, base- 11 정수에 대한 Aa 부터 base- 36 정수에 대한 Zz 까지입니다. 문자들의 대소문자는 무시됩니다.

현재 설치된 C locale 에서 추가 숫자 형식을 허용할 수 있습니다.

base 값이 0 인 경우, 숫자 진법은 자동으로 감지됩니다: 접두사가 0 이면 8진법, 접두사가 0x 또는 0X 이면 16진법, 그렇지 않으면 10진법입니다.

마이너스 기호가 입력 시퀀스의 일부였다면, 숫자 시퀀스로 계산된 숫자 값은 결과 타입에서 단항 마이너스 연산자에 의해 마치 부정된 것처럼 처리되며, 이는 부호 없는 정수 래핑 규칙을 적용합니다.

만약 pos 가 null 포인터가 아니라면, ptr str. c_str ( ) 에서 변환되지 않은 첫 번째 문자의 주소를 받게 되며, 해당 문자의 인덱스가 계산되어 * pos 에 저장되어 변환 과정에서 처리된 문자 수를 나타냅니다.

목차

매개변수

str - 변환할 문자열
pos - 처리된 문자 수를 저장할 정수의 주소
base - 숫자 기수

반환값

지정된 부호 없는 정수 유형으로 변환된 문자열입니다.

예외

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2009 C++11 std::out_of_range 예외가 발생하지 않음 -
std::strtoul 또는 std::strtoull errno ERANGE 로 설정하는 경우
예외 발생

참고 항목

(C++11) (C++11) (C++11)
문자열을 부호 있는 정수로 변환
(함수)
(C++11) (C++11) (C++11)
문자열을 부동 소수점 값으로 변환
(함수)