c++で文字と数字の変換(char-string-int)

競プロのb問題とかといていて、よく忘れるため、自分用のメモ

■数字→文字(int→string)

string s = to_string(int n);

ちなみにto_stringではMinGW系(clangdで利用する場合も含む)32bitのものだとバグがあり使えない。
対応することも可能だけれど、このご時世64bitを利用しておきましょう。

■文字→数字(string→int)

int n = stoi("2223");

ベストプラクティスを知らないが、大体必要な時はこれで対処している。

■文字→数字(cahr→int)

char a = '1';
int n = a - '0';

非常によく使う。string型を配列のように使って1文字取り出す場合も、
char型として扱われるため、頻出。ググるとatoiでやれと言われるが環境によっては使えなかったりしていつも苦労してた。
charは文字のまま使うとa-zなども含めて何番目にある文字か?といったintとしてつかわれるため、0-9に並んでいるので頭の0の番号を引くと、0-9に変換できる。

コメントを残す

メールアドレスが公開されることはありません。