【C++】文字列から数値に変換する方法【備忘録】
ABC126のB問題の解説に知らない方法が書いてあったのでメモ
s[0] = '5'; num = s[0] - '0'; //num = 5になる
そのまま検索したらこのページが出てきた
よくわからないが,数値の0-9は文字コード上では連番で表現されることを利用しているらしい.
目的の数値の文字コードと'0'
の文字コードの差分を取ることで,その値を数値として取り出しているっぽい.
使用例
string s = '1234'; //上の2文字を2桁の数字として取り出す num = (s[0] - '0')*10 + (s[1] - '0');
間違いがあれば教えてください.