C++中減去'0'的作用( -'0' )


  標題沒有在賣萌→_→

  我們在日常研(chao)究(xi)大佬們的代碼時,可能會遇到減去字符'0'的情況,比如下圖,這種語法問題吧說簡單它不那么簡單,畢竟不好理解;但說難吧也不難,其實就是讓代碼更簡潔更有逼格的途徑而已。

  說了那么多屁話那么這個減去零到底是干啥的呢?

  它的作用就是減去0的ASCII值:48。可以方便的用來轉換大小寫或者數字和和字符。比如我們可以寫這么一個函數:

#include <cstdio>
#include <iostream>
using namespace std;

int change_chr_num( char x )
{
    return x - '0';
}

int main()
{
    char x;
    cin >> x;
    cout << change_chr_num(x) + 1;
    return 0;
}
/*
Input: 9
Output: 10
*/

  輸入的是字符串類型下的9,輸出的是計算后的整型10。同時這個語句等價於 return x-48,也就是說直接減去ACSII值48效果也是一樣的,這點在我的博客里有用到,所以到最后這么個東西其實並沒有什么卵用...

#include <cstdio>
#include <iostream>
using namespace std;

int change_chr_num( char x )
{
    return x - 48;
}

int main()
{
    char x;
    cin >> x;
    cout << change_chr_num(x) + 1;
    return 0;
}
/*
Input: 9
Output: 10
*/

修改一下代碼,值還是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM