
C言語基礎|文字列とエスケープシーケンスの基本
文字列とは「文字の並び」を表すもの
C言語では、
"HELLO" や "おはようございます。" のように、
一連の文字を二重引用符 " で囲んだもの を
文字列リテラル(string literal) と呼びます。
文字列リテラルは、
「この中身は文字の並びですよ」
とコンピュータに伝えるための表現です。
printf("C言語を学習中です。\n");この例では、
C言語を学習中です。
という文字列が、そのまま画面に表示されます。

文字列リテラル入力時の注意点
文字列リテラルを入力するときに、
初心者の方が特に注意したい点があります。
| 注意点 | 内容 |
|---|---|
| 二重引用符 | 開始と終了の " を必ず書く |
| 全角記号 | " は必ず半角で入力する |
| 改行 | 途中でEnterキーを押さない |
末尾の " を書き忘れると、
エラーの原因になるだけでなく、どこが間違っているか分かりにくくなる
ため、特に注意しましょう。
リテラルという言葉の意味
リテラル(literal)とは、
「文字どおりの」「書かれたとおりの値」
という意味を持つ言葉です。
| 種類 | 例 |
|---|---|
| 整数リテラル | 10、-5 |
| 文字列リテラル | "ABC"、"こんにちは" |
この章では、
文字列リテラル を中心に扱っていきます。
より詳しい内容は、後の章であらためて学習します。
エスケープシーケンスとは何か
これまでに学習した \n は、
改行 を表す特別な表記でした。
このように、
\(バックスラッシュ)で始まる特別な表記 を
エスケープシーケンス(escape sequence)
と呼びます。
エスケープシーケンスは、
通常の文字では表しにくい動作や制御文字を、
プログラム中で指定するための仕組みです。
よく使われるエスケープシーケンス
代表的なエスケープシーケンスを表で整理してみましょう。
| 表記 | 意味 |
|---|---|
| \n | 改行 |
| \t | タブ |
| \ | バックスラッシュ |
| " | 二重引用符 |
| \a | 警報(アラート) |
この表は、
「見た目は2文字でも、意味は1つの動作」
であることを示しています。
警報を鳴らすエスケープシーケンス \a
\a は、
警報(アラート) を表すエスケープシーケンスです。
環境によっては、
- ビープ音が鳴る
- 画面が一瞬光る
- 何も起こらない
など、動作が異なる場合があります。
サンプルプログラム:表示と警報を組み合わせる
次のプログラムは、
あいさつを表示したあとに警報を鳴らす例です。
プロジェクト名:chap1-8-1 ソースファイル名:chap1-8-1.c
// メッセージ表示と警報を行う
#include <stdio.h>
int main(void)
{
printf("準備ができました。\a\a\n"); // 表示後に警報を2回
return 0;
}実行結果
準備ができました。 ♪♪実行環境によっては、
警報音が1回にまとめて鳴ることもあります。
教材では、警報を ♪ で表現します。
エスケープシーケンスは文字列の中で使う
エスケープシーケンスは、
必ず文字列リテラルの中で使います。
printf("Hello\nWorld\n");この場合、
Hello
Worldと2行に分かれて表示されます。
文字列とエスケープシーケンスの関係
文字列リテラルは、
「表示したい文字」と
「制御のための表記」
を同時に扱えるのが特徴です。
| 要素 | 役割 |
|---|---|
| 通常の文字 | そのまま表示 |
| エスケープシーケンス | 改行・警報などの動作 |
この仕組みを理解すると、
画面表示を自由にコントロールできるようになります。
演習問題
演習 1-2
次のように表示するプログラムを作成せよ。
ただし、printf 関数の呼出しは 1回のみ とする。
(表示例)
挑戦
成長
継続解答例
プロジェクト名:chap1-8-2 ソースファイル名:chap1-8-2.c
// 三つの言葉を縦に表示
#include <stdio.h>
int main(void)
{
printf("挑戦\n成長\n継続\n");
return 0;
}演習 1-3
次のように表示するプログラムを作成せよ。
ただし、printf 関数の呼出しは 1回のみ とする。
(表示例)
おはようございます。
今日もがんばりましょう。
また明日。解答例
プロジェクト名:chap1-8-3 ソースファイル名:chap1-8-3.c
// あいさつ文を複数行で表示
#include <stdio.h>
int main(void)
{
printf("おはようございます。\n今日もがんばりましょう。\nまた明日。\n");
return 0;
}この章で大切なポイント
| ポイント | 内容 |
|---|---|
| 文字列リテラル | " " で囲まれた文字の並び |
| エスケープシーケンス | \ で始まる特別な表記 |
| \n | 改行 |
| \a | 警報(環境依存) |
すべてを一度に覚える必要はありません。
使いながら、少しずつ慣れていけば大丈夫です。
