C++의 Stol() 함수

C Ui Stol Hamsu



C++는 고성능 애플리케이션 개발에 사용되는 가장 인기 있고 오래된 프로그래밍 언어 중 하나입니다. 고도로 숙련된 프로그래머와 초보 개발자 사이에서 사용됩니다. 주로 게임 개발에 사용되며 운영 체제 개발에 이상적인 옵션입니다. C++ 언어로 코드를 작성할 때 데이터를 한 유형에서 다른 유형으로 변환하는 것을 보게 될 수 있습니다. 이 기사에서는 문자열을 긴 정수로 변환하는 방법을 배웁니다. 문자열을 다른 형식으로 변환하는 것은 매우 어렵습니다. 그러나 C++ 프로그래밍 언어는 문자열을 정수로 변환하는 빠르고 효율적인 방법을 제공합니다.

C++의 stol 함수

stol은 std 라이브러리에서 제공되는 C++ 내장 함수입니다. 문자열을 긴 정수로 변환합니다. 문자열 내용을 지정된 기수의 정수로 변환하고 긴 정수 값을 반환합니다. 그것은 세 개의 매개변수를 취하는데, 하나는 입력 문자열이고, 두 번째는 객체 매개변수이고, 세 번째 매개변수는 숫자 기반입니다. stol 함수의 구문은 다음과 같습니다. 한 번 살펴보세요.









stol 함수는 input_string, size 및 base의 세 가지 매개변수를 사용합니다. 'input_string'은 긴 정수로 변환해야 하는 입력 문자열을 나타냅니다.



'크기' 매개변수는 숫자 값 뒤의 입력 문자열에서 다음 문자 위치를 전달하는 size_t 유형의 개체를 나타냅니다. 사용할 필요가 없는 경우 null 포인터가 될 수 있습니다.





세 번째 매개변수인 'base' 매개변수는 문자열을 해석해야 하는 기준을 나타냅니다. 예를 들어, '2' 밑이 주어지면 문자열은 정수 밑이 2인 숫자로 해석됩니다. 기본 매개변수의 기본값은 10이며 0이 제공되면 기본 값은 시퀀스의 형식에 따라 결정됩니다. stol 함수는 주어진 문자열의 int 값을 나타내는 긴 정수를 반환합니다.

이제 C++에서 stol 함수가 어떻게 작동하는지 이해하기 위해 몇 가지 예를 살펴보겠습니다.



예 # 1

이 예에서는 10진수 및 16진수 문자열을 제공하여 stol 함수가 문자열을 10진수 및 16진수 정수로 변환하는 방법을 확인합니다.

'dec = 123456789'는 10진수 문자열이며 stol 함수 stol(dec,&size)를 사용하여 긴 정수로 변환됩니다. 기수는 결과적으로 기본 기수 10을 사용하여 문자열을 10진수로 변환하는 입력 매개변수로 함수에 제공되지 않습니다. 그러나 문자열을 16진수에서 10진수로 변환하기 위해 기본 16이 입력 매개변수 stol(hex, nullptr, 16)으로 제공됩니다. 아시다시피 16진수는 16진수를 나타냅니다.

#include

#include <문자열>

#포함

정수 기본 ( )

{

표준 :: 12월 = '123456789' ;
표준 :: 마녀 = 'a2bf3c' ;
표준 :: :: 크기 유형 크기 ;
리덱 = 표준 :: 테이블 ( 12월, & 크기 ) ;
리헥스 = 표준 :: 테이블 ( 마녀, nullptr , 16 ) ;
표준 :: 쫓다 << '10진수 문자열 입력' << 12월 << ' long int 로 변환 ' << 리덱 << ' \N ' ;
표준 :: 쫓다 << '16진수 문자열 입력' << 마녀 << ' long int 로 변환 ' << 리헥스 << ' \N ' ;
반품 0 ;


}

다음은 출력입니다. 십진수 문자열 '123456789'가 '123456789' 십진수 긴 정수로 변환되었음을 유의하십시오. 16진수 문자열 'a2bf3c'가 '10665788' 16진수로 변환되는 동안. stol 함수가 변환을 수행하는 방법을 배우기 위해 따라야 할 필수 단계는 다음과 같습니다.

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( × 16 ) + ( 열하나 × 16 ³ ) + ( 열 다섯 × 16 ² ) + ( × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

예 # 2

이 예에서는 stol 함수를 사용하여 이진수를 변환합니다. 아래 코드를 보고 코드의 동작을 이해합시다. '1010110110'이 입력 문자열로 제공되고 base 2가 입력 기본 매개변수 stol(bin,&size, 2)로 제공되어 숫자를 이진 형식으로 나타냅니다. stol 함수는 다음 단계에 따라 이진수를 십진수로 변환합니다.

( 1010110110 ) = ( 1 × ) + ( 0 × ) + ( 1 × ) + ( 0 × ) + ( 1 × ) + ( 1 × ) + ( 0 × ³ ) + ( 1 × ² ) + ( 1 × ¹ ) + ( 0 × ) = ( 694 ) ₁₀ #include

#include <문자열>

#포함

정수 기본 ( )

{

표준 :: 큰 상자 = '1010110110' ;
표준 :: :: 크기 유형 크기 ;
리빈 = 표준 :: 테이블 ( 큰 상자, & 크기, ) ;
표준 :: 쫓다 << '입력 바이너리 문자열' << 큰 상자 << ' long int 로 변환 ' << 리빈 << ' \N ' ;
반품 0 ;


}

보시다시피 stol 함수는 일반 바이너리에서 10진수로의 변환 프로세스와 동일한 결과를 반환했습니다.

예 # 3

이 예에서는 잘못된 입력으로 stol 함수를 테스트하면 어떻게 되는지 살펴보겠습니다. 여러 문자의 문자열이 stol 함수에 제공되고 함수가 문자열의 기준을 자동으로 결정할 수 있도록 기준 값으로 0이 제공됩니다. 코드는 다음과 같습니다.

문자 집합은 기본 값(예: 10, 16, 2 등)에 의해 결정되지 않는 입력 문자열로 제공되므로 함수는 오류 값을 반환합니다.

#include

#include <문자열>

#포함

정수 기본 ( )

{

표준 :: chr = 'abcdefgh' ;

표준 :: :: 크기 유형 크기 ;
str = 표준 :: 테이블 ( chr, nullptr , 0 ) ;
표준 :: 쫓다 << '문자열 입력' << chr << ' long int 로 변환 ' << str << ' \N ' ;
반품 0 ;


}

아래 출력을 참조하십시오. 함수가 기본 값으로 결정할 수 없는 문자열을 처리하지 않기 때문에 컴파일러에서 'invalid_argument' 예외가 발생했습니다.

예 # 4

이 예에서는 stol() 함수의 결과를 보기 위해 유효한 입력과 잘못된 입력의 조합을 제공합니다.

입력 문자열은 유효한 문자와 잘못된 문자의 조합인 '123xf25'입니다. '0'은 입력 기준으로 제공되어 함수가 문자 유형에 따라 입력 문자열의 기준을 자동으로 결정합니다.

#include

#include <문자열>

#포함

정수 기본 ( )

{

표준 :: chr = '123xf25' ;
표준 :: :: 크기 유형 크기 ;
str = 표준 :: 테이블 ( chr, nullptr , 0 ) ;
표준 :: 쫓다 << '입력 문자열' << chr << ' long int 로 변환 ' << str << ' \N ' ;
반품 0 ;


}

다음은 유효한 입력과 잘못된 입력의 조합으로 stol 함수의 작동을 보여주는 출력입니다.

이 함수는 '123'을 10진수 '123'으로 변환하고 잘못된 입력 'x'를 수신했기 때문에 나머지 문자열을 삭제했습니다. 문자 'x' 뒤의 문자열은 stol 함수에 의해 변환되지 않고 문자열의 첫 번째 문자만 long int로 반환됩니다.

결론

이 게시물에서 우리는 C++ 프로그래밍 언어의 stol 함수를 탐구했습니다. 유용하고 간단한 예제를 통해 stol 함수가 다양한 유형의 입력과 어떻게 작동하는지 배웠습니다. stol 함수는 변환할 입력 문자열, 문자열에서 함수의 위치를 ​​나타내는 크기 매개변수, 입력 문자열의 기준을 나타내는 기본 값의 세 가지 매개변수를 사용합니다. 입력 문자열의 long int 값을 반환합니다.