[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
codechachaCopyright ©2019 codechacha