C言語のchar型を完全ガイド!初心者でもわかる文字型とASCIIコードの基本
生徒
「C言語で文字を扱うには、どんな書き方をすればいいんですか?」
先生
「C言語では、文字を扱うときにcharというデータ型を使います。」
生徒
「数字を扱うintとは何が違うんでしょうか?」
先生
「文字は見た目は記号ですが、パソコンの内部では数値として記録されています。そのしくみを理解すると、C言語の文字型がもっと分かりやすくなりますよ。」
1. C言語の文字型とは?
C言語の文字型はcharと呼ばれ、ひとつの文字を保存できるデータ型です。ひらがな、カタカナ、英語、記号などの文字は、パソコンの内部では実は数値に置き換えて処理されています。例えば、'A'という文字は六十五、'a'は九十七の数値として扱われます。文字と数値の変換は自動で行われるため、プログラミング初心者でも難しく考える必要はありませんが、仕組みを知るとデバッグやエラー解決でとても役に立ちます。
文字型を使うときは、必ず一文字をシングルクォートで囲みます。ダブルクォートは文字列という別の扱いになるため、ここでは使用しません。たとえば、'A'や'7'は正しい書き方ですが、"A"は別のデータ型として認識されます。
#include <stdio.h>
int main(void){
char c = 'A';
printf("%c\n", c);
return 0;
}
2. ASCIIコードのしくみと文字の関係
パソコンは文字を直接理解できないため、文字と数値の対応表を使って処理を行います。その代表的な仕組みがASCIIコードという規格です。ASCIIコードは、英語や数字を中心とした文字を数値で表現したもので、プログラミング言語や通信の世界で長いあいだ使われ続けています。
例えば、'A'は六十五、'B'は六十六と順番に番号が割り当てられています。数字も同じで、'0'は四十八、'1'は四十九です。このように、文字型は内部で整数として扱われているため、文字を使った比較や計算も可能になります。
#include <stdio.h>
int main(void){
char a = 'A';
int n = a;
printf("%d\n", n);
return 0;
}
65
このように、文字型の変数を整数として出力すると、その文字に対応するASCIIコードの数値が表示されます。プログラミング初心者は、パソコンが文字ではなく数値で処理していることを知ると、条件式や繰り返し処理で文字を扱うときに理解しやすくなります。
3. char型のメモリサイズと保存できる値の範囲
char型は一バイトの大きさで、最大二百五十六通りの値を扱えます。これは、一兆のような大きい桁の数値は保存できないという意味ですが、ひとつの文字であれば十分です。パソコンが扱う数値の単位はバイトと呼ばれ、八個の〇と一で記録されます。八個で二の八乗になり、二百五十六通りの組み合わせになります。
ただし、英語や数字は一文字で保存できますが、日本語はひらがなや漢字が多く、ひとつでは入りません。そのため、日本語を扱う場合はマルチバイト文字という別の仕組みを扱う必要があります。今回の記事では、基本となる英語アルファベットと数字に集中して理解を深めます。
4. 文字と数値の計算ができる理由
文字型が内部で数値として扱われる仕組みを理解すると、文字を使って大小比較や計算ができる理由が分かります。例えば、'A'は六十五、'Z'は九十なので、アルファベットの並び順そのままに比較ができます。
#include <stdio.h>
int main(void){
char c = 'A' + 1;
printf("%c\n", c);
return 0;
}
B
このように、一つ右の文字を求めたり、逆に一つ左の文字を求めたりすることもできます。文字を扱うプログラムでは、この仕組みを利用して暗号や文字検索など、実用的な処理を作り出すことができます。
5. charと文字列の違いに気をつけよう
プログラミング初心者がよくつまずくのは、'A'と"A"の違いです。前者はひとつの文字、後者は文字列です。文字列は複数の文字をまとめて扱うため、実際には配列という仕組みで管理されます。C言語の文字列はcharの並びで作られ、その末尾には〇を意味する特別な記号が入ります。今は文字型を理解する段階なので、ひとつの文字は必ずシングルクォートで囲むことだけ覚えておけば大丈夫です。
6. ASCIIコード表を使うメリット
ASCIIコード表を使うと、アルファベットや数字がどの番号と対応しているのか簡単に調べられます。プログラミング初心者でも、文字の規則性が分かるとエラー調査が簡単になります。例えば、大文字と小文字は三十二の差があるため、'A' + 32で'a'に変換できます。メールやファイル名のチェック、パスワード判定など、文字を扱う場面はとても多いため、この知識は将来必ず役に立ちます。