갓비니

2020/04/20 코딩 문제 연습(7단계 / 백준 2908번) C++ / atoi, string을 int형으로 본문

Programming/코딩 문제 풀이

2020/04/20 코딩 문제 연습(7단계 / 백준 2908번) C++ / atoi, string을 int형으로

갓비니 2020. 4. 21. 18:06

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include<cstdlib> //atoi를 위한것
using namespace std;
 
int main() {
    string A, B;
    string N_A="000", N_B="000";
 
    cin >> A >> B;
    
    for (int i = 0; i < A.length(); i++) {
        N_A[i] = A[2 - i];
        N_B[i] = B[2 - i];
    }
    if (atoi(N_A.c_str()) > atoi(N_B.c_str()))cout << N_A;
    else cout << N_B;
 
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

처음엔 오류가 났다. out of range... 이유는  N_A, N_B가 크기가 지정되지도 않은채로 초기화되어있지 않았는데

for문에서 무작정 인덱스를 이용해서 값을 넣으려고 해서 그런 것 같다 ㅠㅠ

 

각각 000으로 초기화해주니 해결되었다.

 

그리고 string형을 int형으로 바꾸는 방법을 몰랐었는데,

atoi라는 함수를 사용하면 되는 것이었다.

cstdlib (C에서는 stdlib.h에 들어있다.)

 

string을 int로 바꾸려면

string -> char -> int로 바꾸면 된다.

 

stringname.c_str() : 스트링을 char * 형식으로 반환해준다 ( string의 첫번째 문자의 주소값을 반환)

int atoi(char) -> char형을 int형으로 변환해준다.

 

그러니 한번에 하려면 atoi(stringname.c_str()) 요래 해주면 되는 것!