char str[]="abcde1fgh";
int i;
i=str[5];
return;
在此过程之后,整数i必须为1.但它不是。为什么不?
答案 0 :(得分:2)
您的代码不起作用,因为在您的示例中1
是一个char。
请尝试以下方法:
int i = str[5] - '0';
以下是它有效的原因:基于Jamal在下面的评论中的解释
通过减去一些字符来获得数值,例如str[5]
,字符为'0'
。每个字符的数值都在ASCII表中找到。在此示例中,我们减去等于49
的{{1}}(对应'1'
)减去48
(对应'0'
)。