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...