[C++] int를 char로 변환, 3가지 방법

C++에서 int를 char로 변환하는 방법을 소개합니다.

1. int to char (암시적인 형변환)

아래처럼 char ch = i로 입력하면 암시적으로 int 타입을 char 타입으로 형변환합니다. 변수의 값은 97로 달라지지 않지만 정수 97을 ASCII로 출력하면 a로 출력됩니다.

#include <iostream>

int main()
{
    int i = 97;

    char ch = i;

    std::cout << ch << std::endl;

    return 0;
}

Output:

a

2. int to char (명시적인 형변환)

위의 예제에서는 암시적으로 형변환을 하였지만 (char) i처럼 명시적으로 char 타입으로 형변환을 할 수 있습니다.

#include <iostream>

int main()
{
    int i = 97;

    char ch = (char) i;

    std::cout << ch << std::endl;

    return 0;
}

Output:

a

3. int to char (명시적인 형변환)

static_cast<char>처럼 static_cast로 명시적으로 타입 캐스팅을 할 수 있습니다.

#include <iostream>

int main()
{
    int i = 97;

    char ch = static_cast<char>(i);

    std::cout << ch << std::endl;

    return 0;
}

Output:

a

4. 0~9 사이의 정수를 char로 변환

int를 char로 변환하고 출력하면 ASCII로 출력되기 때문에 int의 값으로 출력되지 않습니다. 0에서 9 사이의 정수를 ASCII의 0~9로 변환하려면 '0'을 더해주면 됩니다. '0'의 ASCII 값은 48이며, ASCII '9'의 int 값은 48+9가 되기 때문입니다.

#include <iostream>

int main()
{
    int zero = 0;
    int five = 5;
    int nine = 9;

    char ch1 = zero + '0';
    char ch2 = five + '0';
    char ch3 = nine + '0';

    std::cout << ch1 << std::endl;
    std::cout << ch2 << std::endl;
    std::cout << ch3 << std::endl;

    return 0;
}

Output:

0
5
9
Loading script...
codechachaCopyright ©2019 codechacha