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