본문 바로가기
C++

[C++] - int → string 으로 형변환하기

by 개발 고양이 2024. 1. 10.

1. to_string() 메소드 이용하기

to_string() 메소드는 숫자형을 string으로 변환할 수 있는 간단한 방법이다. to_string(변수 이름)이라고 써주면 된다. int뿐만 아니라 long, double, float 등도 string형으로 형 변환이 가능하다. to_string()을 사용하기 위해서는 <string> 헤더파일을 include 시켜주어야 한다.

-> C언어에서 사용하는 #include <string.h>가 아닌 #include <string>을 사용하므로 혼동하지 않도록 주의하자.

#include <iostream>
#include <string>
using namespace std;

int main() {
	int i_num = 2024;
	long l_num = 20242024;
	double d_num = 1234.12;
	float f_num = 1234.123456;

	string i_str = to_string(i_num);	//int형을 string으로 변환
	string l_str = to_string(l_num);	//long형을 string으로 변환
	string d_str = to_string(d_num);	//double형을 string으로 변환
	string f_str = to_string(f_num);	//float형을 string으로 변환
	
	cout << i_str << endl;
	cout << l_str << endl;
	cout << d_str << endl;
	cout << f_str << endl;
}

 


2. stringstream 클래스 이용하기

stringstream 클래스를 사용하면 int를 string으로 변환할 수 있다. <sstream> 헤더파일을 include 시켜줘야 한다.

#include <iostream>
#include <sstream>
using namespace std;

int main() {
	int i_num = 2024;

	stringstream ss;	//stringstream 클래스 변수 생성
	ss << i_num;	//stringstream 변수 ss가 i_num을 문자열로 변환
	string i_str;	
	ss >> i_str;	//변환환 문자열을 i_str에 저장

	cout << "int : " << i_num << endl;
	cout << "string : " << i_str << endl;
}

 


3. boost::lexical_cast를 이용하기

boost::lexical_cast<string>(변수명) 이라고 써주면 된다. int 뿐 아니라 long, double, float 등도 문자열로 변환이 가능한 방법이다. <boost/lexical_cast.hpp> 헤더파일을 include 시켜줘야 한다. 

-> 단 비주얼 스튜디오의 버전에 따라서 <boost/lexical_cast.hpp> 헤더파일이 include가 안될 수도 있다. 구 버전의 C++에서 쓰던 방법이므로, 만약 include가 안된다면 헤더파일을 추가하거나 1번이나 2번 방법을 써야 한다. (Visual Studio 2022 버전으로는 오류가 났다.)

#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;

int main(){
	int i_num = 2024;
	double d_num = 1234.12;

	string i_str = boost::lexical_cast<string>(i_num);	//int형을 string으로 변환
	string d_str = boost::lexical_cast<string>(d_num);	//double형을 string으로 변환

	cout << i_str << endl;
	cout << d_str << endl;
}