文字型の仕組み
2進数でも説明していますが、物理的にメモリに記憶される情報は0か1の信号です。
それを複数並べることで数を表現します。
では、文字はどのようにして記憶しているのでしょうか。
文字の場合は記憶する文字を数列に置き換えて格納します。この置き換えた数列を文字コードと呼びます。
ASCIIやUnicodeという名前を聞いたことがある方もいるでしょう。これは文字コードの一覧を定義し、規格化したものです。
余談ですが、文字コードは複数あり、文章を適切な文字コードで読み出す必要があります。これを間違えると文字化けが起きます。
使用例
charcode_sample1.c
#include <stdio.h> int main(void) { char c = 'a'; printf("%c\n", c); printf("%d\n", c); char d = c + 1; printf("%c\n", d); printf("%d\n", d); char e = c - 32; printf("%c\n", e); printf("%d\n", e); printf("%c\n", 65); printf("%d\n", 65); return 0; }
実行結果を確認してみてください。
文字型も整数型も%cで表示すると文字が、%dで表示すると文字コードが数値として印字されます。
文字コード表
以下のコードを実行するとあなたの環境に設定してあるコードに対応した文字が表示されます。
デフォルトではASCIIコードが表示されるはずです。
charcode_sample2.c
#include <stdio.h> int main(void) { int i; for (i = 0; i < 200; i++) printf("%3d : %c\n", i, i); return 0; }