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