Static_Cast C ++如何更改INT变量以显示CHAR

时间:2012-03-04 00:39:18

标签: c++

我是C ++的新手,我正在尝试制作一个程序,当用户在0-9之间输入一个int时会显示数字,而在9到36之间会显示相应的字母,A = 10 B = 11 ...我知道如何使用开关功能,但有26种情况需要很多打字。我如何使用static_cast将Int变量转换为Chars?

3 个答案:

答案 0 :(得分:4)

如果我正确理解你的问题,这可能会做你想要的。

int num = 12;  //  Input number

char ch;
if (num < 10)
    ch = num + '0';
else
    ch = num + 'a' - 10;

或者:

const char DIGITS[] = "0123456789abcdefghijklmnopqrstuvwxyz";

int num = 12;          //  Input number

char ch = DIGITS[num]; //  Output number/letter

所以没有必要施展任何东西。

如果您想要大写字母,请在第一个示例中将'a'替换为'A'。第二个例子很容易转换为大写字母。

答案 1 :(得分:1)

别。输出它们。 Streams已经为你做了词法转换。

int x = 64;
std::cout << x; // outputs "64"

char c = 'B';
std::cout << c; // outputs "B"

答案 2 :(得分:0)

像这样:

char IntToChar(int j)
{
    if( (j >= 0) && (j <= 9) ) return '0' + static_cast<char>(j);
    if( (j >= 10) && (j <= 36) ) return 'A' + static_cast<char>(j - 10);
    /* whatever you want here */
}