반응형
오늘 오랜만에 프로그래머스 문제를 풀다가 char형을 int형으로 형 변환시키는 것에서 순간 막혔다.
string형은 int형으로 바꾸려면 stoi를 사용하면 되는데 char형은 뭘로 바꿔야 하지? 하다가 stoi랑 같이 나오는 atoi가 const char * 를 인수로 받길래 이거구나 싶어서 해봤는데 잘 되지 않았다.
그래서 검색해서 찾아보았고, 알고보니 쉬웠다.
char형은 아스키코드이기 때문에 현재 char에서 '0'의 아스키코드 값을 빼주어 구할 수 있었다.
char c = '5';
int i = c - '0';
cout << i << endl; // 5 출력
반대로 int형을 char형으로 바꾸려면 '0'을 더해주면 된다.
int k = 7;
char c = k +'0';
cout << c << endl; // 7출력
당연한 말이지만 char형은 1byte이기 때문에 한자리수만 변환이 가능하다.
int a = 19;
char c = a + '0';
cout << c << endl; // C 출력(ASCII Code)