標題沒有在賣萌→_→
我們在日常研(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 */
修改一下代碼,值還是一樣的。