You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将字符串中的整数存入int类型栈时,exp[i]-'0'的作用是什么?

字符串数字转整数时-'0'的作用解释

当你直接将字符串中的数字字符(比如'5')推入int类型栈时,栈中存储的其实是该字符对应的ASCII编码值,而非你期望的整数数值——比如字符'0'的ASCII值是48,'1'是49,直到'9'是57,直接push这些值自然会得到异常结果。

代码里的exp[i]-'0'本质是利用ASCII编码的规律做数值转换:

  • 所有数字字符的ASCII值是连续递增的,'1'-'0'=1,'2'-'0'=2,以此类推,'9'-'0'=9
  • 用当前数字字符的ASCII值减去'0'的ASCII值,就能直接得到该字符对应的整数数值,这样推入栈的就是正确的int类型数字,而非字符编码。

举个实际例子:如果exp[i]是字符'7',它的ASCII值是55,55减去'0'的48,结果是整数7,这正是你需要存入栈的正确数值。

内容的提问来源于stack exchange,提问作者NoobMaster_69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:52:06