Int(1digit)到char没有任何功能

时间:2012-03-01 03:52:48

标签: c++ c

我知道有类似的问题已经回答,但我找不到我要找的答案。

有没有简单的方法将整数(1digit)转换为char?类似于我们如何使用char to int,只需添加+'0'

7 个答案:

答案 0 :(得分:3)

假设您询问如何从'9'转到9,只需应用反向操作,即减去'0'

char digit= value + '0';
int value= digit - '0';

答案 1 :(得分:2)

int i = 8;
char ch = i+'0';
std::cout << ch << '\n';

答案 2 :(得分:1)

请参阅,将'0'减去char(例如:'9')将其转换为int的原因是因为ASCII值0为48,1为49等等,直到9为57.所以当你做'9' - '0'时你基本上是57-48,等于9.所以你可以用你想要的任何方式使用这个逻辑。

我只是把它放在那里,以便你能理解基础。

答案 3 :(得分:1)

正如其他人所说的那样,+'0'可以为您提供您想要的内容,但如果您对其工作原理感兴趣:

char数据类型实际上只是一个介于0到255之间的数字,每个数字代表一个不同的字符。如果您查看ASCII表(http://www.asciitable.com/index/asciifull.gif),您会看到'0'由数字48表示,所以当您执行0+'0'时,您就是'重新获得48,而9+'0'相当于9+48,为您提供57,您可以在表格中看到该字符'9'。您可以对字母应用相同的原则(例如,添加'A'以将数字转换为字母)。

答案 4 :(得分:0)

你可以这样做:

int i = 5;
char x = (char)('0' + i); // x = '5'

答案 5 :(得分:0)

将它们粘贴在头文件中:

char to_char( const int& x )
{
    return '0' + x;
}
int to_int( const char& c )
{
    return c - '0';
}

答案 6 :(得分:0)

您可以执行+48+'0'这两项工作。整数0和字符'0'之间的差异是整数48.请记住。