본문 바로가기
Study/C++

[C++] char형에서 int형으로 형 변환

by 스테디코디스트 2023. 10. 17.
반응형

오늘 오랜만에 프로그래머스 문제를 풀다가 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)