[c++] 문자열을 정수나 부동소수점 숫자로 변환

1. std::stoi 함수를 사용하여 문자열을 정수로 변환

#include <string>

std::string str = "123";
int num = std::stoi(str);

위 코드에서 std::stoi 함수는 stringint로 변환합니다. 만약 변환에 실패하면 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 함수는 stringfloat로, std::stod 함수는 stringdouble로 변환합니다.

3. std::stringstream을 사용하여 문자열을 다른 타입으로 변환

#include <sstream>
#include <string>

std::string str = "456";
int num;
std::stringstream(str) >> num;

위 코드에서 std::stringstream을 사용하여 문자열을 int로 변환합니다.

예외 처리

위의 모든 방법에서는 변환 실패에 대한 예외 처리를 해야 합니다. 예를 들어, 변환하려는 문자열이 숫자가 아닌 경우, 적절한 예외 처리를 하는 것이 좋습니다.

참고 자료