MENU

C++で文字列ではなく文字char型を整数int型に変換する

String型の文字列をint型に変換するやり方はわかりますが、それだと1文字の場合変換できません。char型をintに変換することはなかなかないので知らない人も多いと思います。

ソースコード

方法としては、ASCIIコード表を用いて変換します。ASCIIコード表の48~57は文字の‘0’~’9′に対応しています。これを利用して変換していきます。

例えば、char型の‘7’の場合は55 – 48 = 7となることが分かると思います。これをint型にキャストしてやれば変換することができます。


#include <stdio.h>
#include <iostream>

int main()
{
  char c = '3';
  int n = 0;

  n = (int)(c - '0');

  std::cout << n + 3;  // int型になっているか確認

  return 0;
}

11行目ではちゃんとint型になっているか確認するために足し算をしています。