c++中减字符0的作用

在刷OJ题的时候遇到要读取“2013-3-1”形式的日期然后计算这个日期是该年的第几天,
显然我们读取的是字符串,但是计算第几天却要整型数来计算,这是这个问题的难点,下面是解决这个问题的代码:

int i=0;
    while(isdigit(s[i])){
        year=year*10+s[i]-'0';
        i++;
    }`

year是整数与字符s[i]做运算的实质是加上s[i]的asc码值,这时候结果不是我们想要的,于是减去字符0,也就是0的asc码值48,整个表达式的作用就是把year从“2013-3-1”这种字符串形式中提取出2013整型数。
注:我在想减字符0的作用的时候去百度和Google了,都没找到相关的解释,弄明白后就写了这篇博客,希望能帮到将来搜索整个问题的人~
4-11更新:我发现找不到是因为关键字不对,所以说去搜索问题,想出正确的关键字大家都要掌握的技能额(´Д`)~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值