
【6日でできるC言語入門】書式指定と文字コード
C言語のprintf関数は、さまざまなデータ型の値を見やすい形で出力するために「書式指定子」という記号を使います。
また、文字や文字列を扱う場合には「文字コード」や「文字の型」にも注意が必要です。ここでは、書式指定子の使い方と、C言語における文字の取り扱いについて、わかりやすく解説します。

1.書式指定の基本
1.1. 書式指定子を使った日本語メッセージの表示
printf関数の書式指定子を使うことで、文字列・整数・実数・文字などを自在に表示できます。
プロジェクト/ファイル名: Lesson12_1/main.c
#include <stdio.h>
int main(void) {
printf("私の好きな果物は%sです。値段は%d円です。\n", "りんご", 120);
printf("最初の文字は%cです。\n", 'り');
printf("%lf × %d = %lf\n", 1.5, 3, 1.5 * 3);
return 0;
}実行結果
私の好きな果物はりんごです。値段は120円です。
最初の文字はりです。
1.500000 × 3 = 4.5000001.2. 主な書式指定子一覧
| 書式 | 意味 | 入れる値や式の例 |
|---|---|---|
| %d | 整数値を10進数で表示 | 10, -4, 3+7 |
| %i | 整数値を10進数で表示 | 8, 12-2 |
| %f | 小数を10進数で表示 | 2.5, 1.0+1.8 |
| %lf | 倍精度小数を10進数で表示 | 1.5, 2.0*2 |
| %c | 1文字を表示 | 'A', 'り' |
| %s | 文字列を表示 | "Hello", "さくら" |
2.文字コードと文字データ
2.1. 文字と文字列の扱い
- 文字(char型)
1つの文字を表現します。
例:char ch = 'A'; - 文字列(char型配列)
文字の並び(配列)で表現します。
例:char str[] = "こんにちは";
プロジェクト/ファイル名: Lesson12_2/main.c
#include <stdio.h>
int main(void) {
char moji = 'A';
char str[] = "日本語のテスト";
printf("1文字だけ表示:%c\n", moji);
printf("文字列を表示:%s\n", str);
return 0;
}実行結果
1文字だけ表示:A
文字列を表示:日本語のテスト2.2. 文字コードとは?
コンピュータは文字を数値として管理しています。
たとえば「A」はASCIIコードで「65」、「あ」はUTF-8などで複数バイトで表現されます。
日本語を扱うときは「ソースファイルの文字コード設定」にも注意しましょう。
| 文字 | ASCIIコード値 | 備考 |
|---|---|---|
| 'A' | 65 | 半角英数字 |
| '1' | 49 | 半角数字 |
| 'あ' | (複数バイト) | UTF-8やShift_JIS等 |
まとめ
C言語のprintf関数は、書式指定子を利用することでさまざまなデータを整った形で出力できます。また、文字や文字列の扱いではchar型と文字コードを意識することが大切です。
日本語を表示するプログラムを書くときは、ソースファイルの文字コード(UTF-8推奨)にも注意して実験してみましょう。
