까먹어서 다시하는 c++

c++ atoi, stoi 문자열을 int 로 - string to int

FireStone 2020. 4. 24. 23:07

<string>에 정의되어 있어서 #include<string> 해주면 가능

 

1)stoi

- c++11부터인가는 stoi가 있어서 stoi를 사용해주면 빠르다.

바로 코드로 ㄱ 

#include <iostream>
#include <string>

using namespace std;

int main() {

    string s="111";
    int n;
    n=stoi(s);
    cout<<n+1<<endl;
    
    return 0;
}

=>  result: 112

2)atoi

이걸 굳이 쓰는 이유는 혹시 코테를 보는데 c++11보다 낮은걸 사용할 수도 있으니까..

atoi를 사용하기 위해서는 string -> char *로 바꾸고 char* -> int로 바꿔야한다.

 

  • string to char* => c_str()사용

int main() {

    string s="111";
    const char* ch;
    ch=s.c_str();
    cout<<ch<<endl;
    
    return 0;
}

 

  • char* to int  => atoi()사용
#include <iostream>
#include <string>

using namespace std;

int main() {

    string s="111";
    const char* ch;
    int n;
    //string to char*
    ch=s.c_str();
    //char* to int
    n=atoi(ch);
    //한번에 쓰려면 n=atoi(s.c_str())로 쓰면된다.
    
    cout<<n+1<<endl;
    
    return 0;
}

 

result: 112