[英]C++ Convert Ascii Int To Char To Int
我能够毫无问题地转换大多数东西,如果需要的话可以使用谷歌搜索。 不过,我无法弄清楚这一点。
我有一个像char数组:
char map[40] = {0,0,0,0,0,1,1,0,0,0,1,0,1... etc
我正在尝试将char转换为正确的整数,但是无论我尝试什么,我都会得到ascii值:48/49。
我已经尝试了很多转换和强制转换的不同组合,但是即使将其作为字符,也无法以0或1结束。
谁能帮我这个忙吗? 谢谢。
代表整数的字符的ascii范围是48到57(对于“ 0”到“ 9”)。 您应该从字符中减去基值48以获得其整数值。
char map[40] = {'0','0','0','0','0','1','1','0','0','0','1','0','1'...};
int integerMap[40];
for ( int i = 0 ;i < 40; i++)
{
integerMap[i] = map[i] - 48 ;
// OR
//integerMap[i] = map[i] - '0';
}
如果char是文字,例如'0'
(请注意引号),则要转换为int,您必须执行以下操作:
int i = map[0] - '0';
当然,您在整个map
数组中也执行类似的操作。 进行错误检查也是明智的,因此您知道结果int的范围是0-9。
您得到48/49的原因是,正如您指出的那样,直接转换像int i = (int)map[0];
这样的文字int i = (int)map[0];
给出char的ASCII值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.