我知道有类似的问题已经回答,但我找不到我要找的答案。
有没有简单的方法将整数(1digit)转换为char?类似于我们如何使用char to int,只需添加+'0'
答案 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.请记住。