C++ Int(1digit)到char,不带任何函数
我知道有类似的问题得到了回答,但我没有找到我想要的答案 有没有简单的方法将整数(1digit)转换成字符?类似于将char转换为int的方法,只需添加C++ Int(1digit)到char,不带任何函数,c++,c,C++,C,我知道有类似的问题得到了回答,但我没有找到我想要的答案 有没有简单的方法将整数(1digit)转换成字符?类似于将char转换为int的方法,只需添加+'0'是 int i = 8; char ch = i+'0'; std::cout << ch << '\n'; inti=8; char ch=i+'0'; std::cout假设您询问如何从'9'到9,只需应用逆运算,即减去'0': char digit= value + '0'; int value= digit
+'0'
是
int i = 8;
char ch = i+'0';
std::cout << ch << '\n';
inti=8;
char ch=i+'0';
std::cout假设您询问如何从'9'
到9
,只需应用逆运算,即减去'0'
:
char digit= value + '0';
int value= digit - '0';
你可以做:
int i = 5;
char x = (char)('0' + i); // x = '5'
将这些文件粘贴到头文件中:
char to_char( const int& x )
{
return '0' + x;
}
int to_int( const char& c )
{
return c - '0';
}
请参阅,将“0”减去char
(示例:“9”)以将其转换为int
,原因是0的ASCII值为48,1为49,依此类推,直到9为57。所以当你做一个'9'-'0'时,你基本上是在做一个57-48,等于9。所以你可以用任何你想要的方式来使用这个逻辑
我只是把它放在那里,让你能理解基金会 正如其他人所说,一个+'0'
会给你想要的,但是如果你对它的工作原理感兴趣的话:
char
数据类型实际上只是一个数字,介于0和255之间,每个数字代表一个不同的字符。如果你看一个ASCII表格(),你会发现'0'
是由数字48
表示的,所以当你做0+'0'
时,你得到的是48,9+'0'
相当于9+48
,给你57
,你可以在表格上看到它代表了字符'9'
。您可以对字母应用相同的原则(例如,添加'A'
以将数字转换为字母)。您可以执行+48
或+'0'
,两者都有效。整数0
和字符'0'
之间的差值为整数48。记住这一点。你是想把int
转换成char
还是转换它?不,+'0'
是如何从int转换成char的<代码>-'0'
是如何从char转换为int的。参数是常量引用的原因是什么?你是对的。没有必要这样做。我在考虑编译时优化,但是const引用不是真正需要的。不推荐C++中的类型化方法。使用流总是安全的。@ken你能详细说明一下吗?我的C++有点生疏了,那么在原始类型之间做显式转换的最佳方法是什么?还有,流是什么呢?#include int main(){char*str=“1234”;std::stringstream s_str(str);int i;s_str>>i;}-------------因为流是类型安全的,所以我们应该始终更喜欢它们,即使程序的足迹可能会增加,而且您提出的样式也是“C”类型转换。