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()) 요래 해주면 되는 것!