[C++] string을 int로 변환, 3가지 방법

string을 int로 변환하는 다양한 방법을 소개합니다.

1. std::stoi()으로 문자열을 int로 변환

std::stoi()는 인자로 전달된 string을 int로 변환하여 리턴합니다.

1.1 std::string

아래와 같이 std::string 객체를 std::stoi()의 인자로 전달하면 int로 변환됩니다.

#include <iostream>
#include <string>

int main() {

    std::string str = "12345";

    int num = std::stoi(str);

    std::cout << num << std::endl;

    return 0;
}

Output:

12345

1.2 C스타일 문자열 배열 (char str[])

C에서 사용하는 문자열 배열 char str[] 같은 객체도 stoi()를 이용하여 int로 변환할 수 있습니다.

#include <iostream>

int main() {

    char str[] = "12345";

    int num = std::stoi(str);

    std::cout << num << std::endl;

    return 0;
}

Output:

12345

2. std::stringstream으로 string을 int로 변환

std::stringstream는 문자열의 stream인데, string으로 초기화한 stringstream 객체를 생성하고, 이 객체에서 int 변수로 데이터를 전달하면 됩니다.

#include <iostream>
#include <string>
#include <sstream>

int main() {

    std::string str = "12345";

	  std::stringstream ss(str);

    int num;
    ss >> num;
    std::cout << num << std::endl;

    return 0;
}

Output:

12345

3. boost::lexical_cast으로 string을 int로 변환

boost::lexical_cast를 사용하여 아래와 같이 string을 int로 변환할 수 있습니다.

#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>

int main() {

    std::string str = "12345";

    int num = boost::lexical_cast<int>(str);

    std::cout << num << std::endl;

    return 0;
}

Output:

12345
Loading script...
codechachaCopyright ©2019 codechacha