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更新:我發現找不到是因爲關鍵字不對,所以說去搜索問題,想出正確的關鍵字大家都要掌握的技能額(´Д`)~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章