[c++] 문자열을 정수나 부동소수점 숫자로 변환
1. std::stoi
함수를 사용하여 문자열을 정수로 변환
#include <string>
std::string str = "123";
int num = std::stoi(str);
위 코드에서 std::stoi
함수는 string
을 int
로 변환합니다. 만약 변환에 실패하면 std::invalid_argument
예외를 발생시킵니다.
2. std::stof
또는 std::stod
함수를 사용하여 문자열을 부동소수점 숫자로 변환
#include <string>
std::string str = "3.14";
float num1 = std::stof(str); // 부동소수점 변환
double num2 = std::stod(str); // 두배 정도의 부동소수점 변환
위 코드에서 std::stof
함수는 string
을 float
로, std::stod
함수는 string
을 double
로 변환합니다.
3. std::stringstream
을 사용하여 문자열을 다른 타입으로 변환
#include <sstream>
#include <string>
std::string str = "456";
int num;
std::stringstream(str) >> num;
위 코드에서 std::stringstream
을 사용하여 문자열을 int
로 변환합니다.
예외 처리
위의 모든 방법에서는 변환 실패에 대한 예외 처리를 해야 합니다. 예를 들어, 변환하려는 문자열이 숫자가 아닌 경우, 적절한 예외 처리를 하는 것이 좋습니다.