[C++] stoi & to_string 문자열 ↔ 정수 변환

    반응형

    [C++] stoi & to_string

    * 개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.

     

    _content

    #1 stoi

    #2 to_string


    #1 stoi

    <string>에 정의되어 있다.

    int stoi(const std::string& str, std::size_t* pos = 0, int base = 10);
    int stoi(const std::wstring& str, std::size_t* pos = 0, int base = 10);

    stoi 함수는 string 혹은 wstring 문자열 strbase 진법을 사용하는 부호있는 정수로 변환값을 리턴한다.

    * 문자열 내에 부호(-)가 포함되어 있으면 부호까지 인식하여 정수 타입으로 변환시킨다.

    * 문자열 내에 소수점이 포함되어 있다면 소수점은 모두 제거하고 정수 타입으로 변환시킨다.

    * 문자열 내에 숫자와 문자열이 같이 포함되어 있다면 문자열은 제거하고 숫자 문자열만 정수 타입으로 변환시킨다. 

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
    	string str1 = "1234";
    	string str2 = "-1234";
    	string str3 = "1.234";
    	string str4 = "1234문자열";
    	
    	int num1 = stoi(str1);
    	int num2 = stoi(str2);
    	int num3 = stoi(str3);
    	int num4 = stoi(str4);
    	int num5 = stoi(str5);
    	
    	cout << "num1 : " << num1 << '\n';
    	cout << "num2 : " << num2 << '\n';
    	cout << "num3 : " << num3 << '\n';
    	cout << "num4 : " << num4 << '\n';
    	return 0;
    }
    num1 : 1234
    num2 : -1234
    num3 : 1
    num4 : 1234

    #2 to_string

    <string>에 정의되어 있다.

    string to_string(int num);
    string to_string (long num);
    string to_string (long long num);
    string to_string (unsigned num);
    string to_string (unsigned long num);
    string to_string (unsigned long long num);
    string to_string (float num);
    string to_string (double num);
    string to_string (long double num);

    to_string 함수는 숫자 타입의 데이터를 문자열 타입의 데이터로 변환하도록 도와주는 함수이다.

    파라미터로 int형 뿐 만 아니라 다양한 숫자 타입 자료형을 보낼 수 있도록, 오버라이딩 되어 있다.

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main(){
    	int num1 = 10;
    	float num2 = 10.000001f;
    	
    	cout << "num1(int) : " << to_string(num1) << '\n';
    	cout << "num2(float) : " << to_string(num2) << '\n';
    	return 0;
    }
    num1(int) : 10
    num2(float) : 10.000001
    반응형

    댓글

    Designed by JB FACTORY