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整型数。

posted @ 2017-12-19 14:55  sgggr  阅读(1500)  评论(0编辑  收藏  举报