繁体   English   中英

C ++将Ascii Int转换为Char至Int

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM