Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 단일 문자를 int(정수)로 변환하는 방법


C++에서 단일 문자를 int(정수)로 변환하는 것은 ASCII 코드의 특성을 활용하면 매우 간단하게 처리할 수 있습니다. 다음은 문자 하나를 int로 변환하는 기본 예제입니다.

예제

#include <iostream>
using namespace std;
int main() {
    char c = '8';
    int i = c - 48;
    cout << i;
    i = c - '0';
    cout << "\t" << i;
    return 0;
}

출력 결과

8  8

코드 설명

위 프로그램에서는 문자형 변수 c에 문자 '8'을 초기화한 뒤, 아래와 같은 방식으로 이 문자를 정수 값으로 변환합니다.

char c = '8';
int i = c - 48;
cout << i;
i = c - '0';
cout << "\t" << i;

변환 원리

ASCII 코드에서 숫자 문자 '0'부터 '9'는 각각 48부터 57까지 연속된 정수 값으로 배치되어 있습니다. 따라서 숫자 문자에서 '0', 즉 48을 빼주면 해당 문자가 실제로 나타내는 숫자 값을 얻을 수 있습니다.

예를 들어 문자 '8'의 ASCII 값은 56이므로 56 - 48 = 8이 되어, 결과적으로 정수 8이 출력됩니다. c - 48c - '0'은 완전히 동일한 연산이지만, 문자 리터럴 '0'을 사용하는 편이 코드의 의도를 명확하게 드러내므로 가독성 면에서 더 권장됩니다.

다만 이 방식은 단일 문자 변환에만 적용됩니다. 여러 자리로 이루어진 숫자 문자열 전체를 정수로 변환하려면 stoi()atoi() 같은 표준 라이브러리 함수를 사용해야 한다는 점을 참고하세요.