6日でできる 新C言語入門|C言語の文字列表示と特殊文字

改行、タブ、引用符も思いどおりに表示する。
エスケープシーケンスを覚えて、C言語の文字列表示をきれいに整えよう。

C言語で画面に文字を表示するときによく使うのがprintf関数です。printf関数を使えば、文字や文章をコンソール画面に表示できます。しかし、文字列の中には、そのまま書くだけでは表現しにくいものがあります。

たとえば、表示の途中で改行したい場合、文字と文字の間にタブのような空白を入れたい場合、ダブルクオーテーションやバックスラッシュそのものを表示したい場合などです。こうした特殊な表示を行うときに使う仕組みがエスケープシーケンスです。

エスケープシーケンスは、バックスラッシュと特定の文字を組み合わせて、特別な意味を持たせる記法です。たとえば、\nは改行、\tはタブを表します。普通の文字としてnやtを表示するのではなく、文字列の表示方法を変えるための合図として働きます。

C言語の学習では、最初のうちからprintf関数をよく使います。そのため、エスケープシーケンスを理解しておくと、表示結果を見やすく整えたり、文字列の中に特殊な記号を含めたりできるようになります。

この記事では、C言語の文字列表示で使うエスケープシーケンスについて、基本的な使い方、代表的な種類、具体的な表示例、注意点を順番に解説していきます。

エスケープシーケンスとは

エスケープシーケンスとは、文字列の中で特別な意味を持つ記号の組み合わせです。C言語では、バックスラッシュに続けて特定の文字を書くことで、改行やタブ、引用符、バックスラッシュなどを表現できます。

通常、printf関数の中に書いた文字列は、そのまま画面に表示されます。しかし、\nや\tのようなエスケープシーケンスは、文字として表示されるのではなく、特別な動作として処理されます。

表記主な働き
\n改行する
\tタブ幅の空白を入れる
\\バックスラッシュを表示する
\"ダブルクオーテーションを表示する
\'シングルクオーテーションを表示する
\0文字列の終端を表すヌル文字

エスケープシーケンスを使うと、文字列の表示を細かく調整できます。複数行のメッセージを表示したり、表のように位置をそろえたり、ファイルパスのようにバックスラッシュを含む文字列を表示したりできます。

C言語では、文字列の中でダブルクオーテーションが特別な意味を持ちます。文字列の開始と終了を表すためです。そのため、文字としてのダブルクオーテーションを表示したい場合は、\"のように書いて、これは文字列の終わりではなく表示したい記号であることを示します。

図:通常の文字とエスケープシーケンスの違い

この図から分かること

この図から分かるのは、エスケープシーケンスが単なる文字ではなく、表示結果を変えるための特別な記法だという点です。

\nは画面上で改行として働き、\tはタブ幅の空白として表示されます。また、\\や\"を使うことで、通常は特別な意味を持つ記号を文字として表示できます。C言語で見やすい出力を作るには、エスケープシーケンスの理解がとても大切です。

エスケープシーケンスを使ったサンプルプログラム

まずは、エスケープシーケンスを使って日本語メッセージやファイルパス、引用符、バックスラッシュを表示するプログラムを見てみましょう。

プロジェクト/ファイル名: Lesson10_1/main.c

#include <stdio.h>

int main(void) {
    // 改行を使って、2行のメッセージを表示する
    printf("C言語の学習を始めます。\n文字列表示を確認しましょう。\n");

    // タブを使って、項目名と内容の間に空白を入れる
    printf("学習項目:\tエスケープシーケンス\n");

    // バックスラッシュを2つ書いて、Windows風のパスを表示する
    printf("保存先の例:\tC:\\CStudy\\Lesson10_1\\main.c\n");

    // ダブルクオーテーションとシングルクオーテーションを表示する
    printf("表示例:\"printf関数\"\t記号例:\'A\'\n");

    // バックスラッシュそのものを表示する
    printf("バックスラッシュの表示:\\\n");

    return 0;
}

実行結果

C言語の学習を始めます。
文字列表示を確認しましょう。
学習項目:       エスケープシーケンス
保存先の例:     C:\CStudy\Lesson10_1\main.c
表示例:"printf関数"       記号例:'A'
バックスラッシュの表示:\

このプログラムでは、複数のエスケープシーケンスを使っています。\nで改行し、\tでタブを入れ、\\でバックスラッシュを表示しています。また、\"を使ってダブルクオーテーションを表示し、\'を使ってシングルクオーテーションを表示しています。

サンプルプログラムの全体像

このサンプルプログラムは、printf関数を複数回使って、さまざまな文字列を表示しています。ポイントは、文字列の中にエスケープシーケンスが含まれていることです。

処理内容使っている主なエスケープシーケンス表示の特徴
2行のメッセージを表示する\n文章が途中で改行される
学習項目を表示する\t項目名と内容の間に空白が入る
保存先の例を表示する\t、\タブとバックスラッシュが表示される
引用符を含めて表示する\"、\'、\t引用符とタブが表示される
バックスラッシュを表示する\\バックスラッシュそのものが表示される

C言語の文字列では、バックスラッシュが特別な意味を持ちます。そのため、バックスラッシュそのものを表示したいときは、\\と2つ続けて書きます。

Windowsのパスでは、C:\CStudy\Lesson10_1\main.cのようにバックスラッシュが使われます。しかしC言語の文字列の中でそのまま書くと、\Cや\Lのような意図しないエスケープのように解釈される可能性があります。そこで、表示したいバックスラッシュ1つにつき、ソースコード上では\\と書きます。

\nは改行を表す

\nは、エスケープシーケンスの中でも特によく使うものです。printf関数で文字列を表示したあと、次の表示を新しい行から始めたいときに使います。

たとえば、1つのprintf関数の中に\nを入れると、途中で表示位置が次の行へ移ります。文章を複数行に分けたいときや、結果を見やすく表示したいときに便利です。

表記意味よく使う場面
\n改行メッセージを複数行で表示したいとき
文字列末尾の\n表示後に行を変える次の出力を見やすくしたいとき
文字列途中の\n表示の途中で行を変える1つの文字列を複数行に分けたいとき

C言語の入門では、printf関数の文字列の最後に\nを付けることがよくあります。これは、表示後に改行して、次の出力や実行後の表示が見やすくなるためです。

\tはタブを表す

\tは、水平タブを表します。表示上は、一定の幅の空白として扱われます。項目名と内容を並べて表示したいときや、簡単に位置をそろえたいときに使えます。

ただし、タブ幅は表示環境によって見え方が変わることがあります。そのため、厳密に列をそろえたい場合には、printf関数の書式指定を使う方法もあります。入門段階では、\tは見た目に少し広い空白を入れるための記法として覚えておくとよいでしょう。

表記意味表示例のイメージ
\tタブ項目名と内容の間に広めの空白が入る

サンプルプログラムでは、学習項目:\tエスケープシーケンスのように使っています。これにより、学習項目:のあとにタブ幅の空白が入り、内容が少し右側に表示されます。

\\はバックスラッシュを表示する

\は、バックスラッシュそのものを表示するために使います。C言語では、バックスラッシュはエスケープシーケンスの始まりを表す特別な記号です。そのため、文字としてのバックスラッシュを表示するには、2つ続けて書く必要があります。

表示したい内容ソースコード上の書き方
\\\
C:\CStudyC:\\CStudy
C:\CStudy\Lesson10_1\main.cC:\\CStudy\\Lesson10_1\\main.c

Windows風のパスを表示する場合、このルールがとても重要です。ソースコード上ではバックスラッシュを2つ書きますが、実行結果では1つのバックスラッシュとして表示されます。

図:ソースコード上の書き方と実行結果の違い

この図から分かること

この図から分かるのは、ソースコード上で書く文字と、実行結果として表示される文字が必ずしも同じ見た目にならないという点です。

バックスラッシュはC言語の文字列では特別な意味を持つため、表示したい場合には\\と書きます。ソースコード上では2つ並んでいても、画面には1つのバックスラッシュとして表示されます。ファイルパスを表示するときには、この違いを意識することが大切です。

\"はダブルクオーテーションを表示する

C言語では、文字列をダブルクオーテーションで囲みます。そのため、文字列の中にダブルクオーテーションそのものを表示したい場合、何も工夫せずに書くと、文字列の終わりと解釈されてしまいます。

そこで使うのが"です。これにより、文字列の区切りではなく、表示したいダブルクオーテーションであることを示します。

表示したい内容ソースコード上の書き方
"\"
"printf関数"\"printf関数\"

サンプルプログラムでは、表示例:\"printf関数\"のように書いています。実行結果では、表示例:"printf関数"と表示されます。

文章の中に引用を含めたい場合や、説明として記号を見せたい場合に便利です。

\'はシングルクオーテーションを表示する

'は、シングルクオーテーションを表示するために使えます。C言語では、シングルクオーテーションは文字定数を表すときに使われます。そのため、文字列の中でシングルクオーテーションを表示したい場合には、'と書くことがあります。

ただし、ダブルクオーテーションで囲まれた文字列の中では、シングルクオーテーションをそのまま書ける場合もあります。それでも、エスケープシーケンスとして'を知っておくと、文字定数や特殊文字の理解につながります。

表示したい内容ソースコード上の書き方
'\'
'A''\A\'

サンプルプログラムでは、記号例:\'A\'のように書いています。実行結果では、記号例:'A'と表示されます。

\0は文字列の終端を表す

\0は、ヌル文字を表します。C言語では、文字列の終わりを表すために使われる特別な文字です。printf関数で通常の文字として表示するために使うものではなく、文字列の内部構造を理解するうえで大切なエスケープシーケンスです。

C言語の文字列は、文字が並んだ最後に\0が置かれることで、ここで文字列が終わると判断されます。これは、C言語の文字列が文字配列として扱われることと深く関係しています。

表記意味主な役割
\0ヌル文字文字列の終わりを示す

入門段階では、\0は文字列の終端を表す特別な文字、と覚えておくとよいでしょう。文字列や配列を詳しく学ぶ段階で、より重要になります。

主なエスケープシーケンス一覧

C言語でよく使うエスケープシーケンスを整理すると、次のようになります。

エスケープシーケンス表示される内容説明
\n改行次の行へ移動する
\tタブ水平方向に空白を入れる
\\バックスラッシュバックスラッシュそのものを表示する
\"ダブルクオーテーション文字列内にダブルクオーテーションを表示する
\'シングルクオーテーション文字列内にシングルクオーテーションを表示する
\0ヌル文字文字列の終わりを表す

最初に覚えるなら、\n、\t、\\、\"の4つが特に重要です。これらは、画面表示やファイルパス、引用を含む文字列でよく使います。

エスケープシーケンスの使いどころ

エスケープシーケンスは、単に特殊な記号を表示するためだけではありません。表示結果を見やすく整えるためにも使います。

複数行のメッセージを表示したいとき

長い説明や複数のメッセージを表示するときには、\nを使うと読みやすくなります。1行にすべてを詰め込むより、内容ごとに改行したほうが、実行結果を確認しやすくなります。

項目と内容を少し離して表示したいとき

項目名と値を並べて表示する場合には、\tが便利です。たとえば、項目名、学習内容、保存先などを表示するときに使うと、見た目を少し整えられます。

ファイルパスを表示したいとき

Windows風のファイルパスでは、バックスラッシュがよく使われます。C言語の文字列でバックスラッシュを表示するには、\\と書く必要があります。

引用符を表示したいとき

説明文の中で"printf関数"のように引用符を表示したい場合には、\"を使います。文字列の区切りと表示したい記号を区別するためです。

使いどころよく使うエスケープシーケンス
複数行表示\n
表示位置の調整\t
Windows風パスの表示\\
引用を含む表示\"、\'
文字列の内部構造\0

エスケープシーケンスを使えるようになると、printf関数による出力がより自由になります。表示結果を確認しやすく整えることは、学習中のデバッグにも役立ちます。

サンプルプログラムの各行を確認する

サンプルプログラムで使っているエスケープシーケンスを、行ごとに整理してみましょう。

行の内容表示内容の特徴使っているエスケープシーケンス
C言語の学習を始めます。文字列表示を確認しましょう。2行に分かれて表示される\n
学習項目と内容を表示項目名と内容の間にタブが入る\t
保存先の例を表示Windows風のパスが表示される\t、\\
printf関数とAを引用符付きで表示ダブルクオーテーションとシングルクオーテーションが表示される\"、\'、\t
バックスラッシュを表示バックスラッシュそのものが表示される\\

このように、エスケープシーケンスは表示結果を整えるために使われています。特に、ソースコードに書いた見た目と実行結果の見た目が少し変わる点に注目しましょう。

入力時によくあるミス

エスケープシーケンスは便利ですが、入力を間違えるとコンパイルエラーや意図しない表示につながります。特によくあるのは、バックスラッシュの数を間違えることです。

よくあるミス起こりやすい問題
\nを/nと書く改行されず、そのまま表示される
\\を\だけで書く意図しないエスケープとして解釈される
\"のバックスラッシュを忘れる文字列の終わりと解釈され、エラーになる
全角の¥や記号を使うコンパイラが正しく解釈できない場合がある
ダブルクオーテーションを閉じ忘れる文字列の範囲が分からずエラーになる

日本語環境では、バックスラッシュが画面上で円記号のように表示される場合があります。これはフォントや環境による見え方の違いで、C言語のエスケープシーケンスとしては同じ役割を持つ場合があります。ただし、入力時には半角記号として正しく入力することが大切です。

図:エスケープシーケンスの入力ミスと確認ポイント

この図から分かること

この図から分かるのは、エスケープシーケンスではバックスラッシュの向きや数、引用符の対応が重要だという点です。

\nを/nと書くと改行にはなりません。また、バックスラッシュを表示したい場合は\\と書く必要があります。ダブルクオーテーションを文字列の中に表示したい場合は、\"と書くことで、文字列の終わりではなく表示したい記号であることを示します。

日本語メッセージで使うときの注意点

C言語でも、日本語の文字列をprintf関数で表示できます。ただし、開発環境や実行環境によっては文字化けが起こることがあります。これは、ソースファイルの文字コードやコンソールの表示設定が関係するためです。

Visual Studio 2026で日本語を扱う場合は、ソースファイルの保存形式やコンソールの表示環境に注意するとよいでしょう。もし日本語が正しく表示されない場合は、文字コードや実行環境の設定を確認します。

確認項目内容
ソースファイルの文字コード日本語が正しく保存されているか確認する
コンソールの表示実行画面で日本語が正しく表示されるか確認する
半角記号エスケープシーケンスの記号は半角で入力する
フォント表示バックスラッシュが円記号に見える場合がある

日本語メッセージとエスケープシーケンスは一緒に使えます。たとえば、日本語の文章の途中で\nを使って改行したり、\tを使って項目をそろえたりできます。

文字列表示を見やすくする考え方

printf関数で文字列を表示するときは、ただ文字を出すだけでなく、読みやすさも意識すると学習が進めやすくなります。表示結果が見やすいと、プログラムが正しく動いているか確認しやすくなります。

たとえば、処理の区切りごとに改行を入れる、項目名と値の間にタブを入れる、ファイルパスや引用符を正しく表示する、といった工夫ができます。

見やすくする工夫使う記法
文章を行ごとに分ける\n
項目と内容を離す\t
ファイルパスを正しく表示する\\
説明文に引用符を入れる\"
記号の見本を表示する\、\"、\'

C言語の学習中は、出力結果を使ってプログラムの状態を確認することがよくあります。そのため、エスケープシーケンスを使って見やすい表示を作れるようになることは、学習効率を上げることにもつながります。

printf関数とエスケープシーケンスを組み合わせて使う

printf関数は、文字列を表示するための基本的な関数です。そして、エスケープシーケンスは、その文字列の中で特別な表示を行うための仕組みです。この2つを組み合わせることで、コンソール画面への出力を自由に調整できます。

C言語では、プログラムの動作確認にprintf関数を使うことがよくあります。変数の値を表示したり、処理がどこまで進んだかを確認したりするときにも、改行やタブを使うと結果が見やすくなります。

エスケープシーケンスは、最初は記号の意味を覚える必要がありますが、使いながら自然に身についていきます。特に、\n、\t、\\、\"は出番が多いため、早い段階で慣れておくと便利です。

エスケープシーケンスを覚えると表現の幅が広がる

C言語の文字列表示では、普通の文字だけでなく、改行、タブ、引用符、バックスラッシュなども扱います。これらを正しく表示するためには、エスケープシーケンスの理解が欠かせません。

\nを使えば複数行の表示ができ、\tを使えば項目を見やすく並べられます。\\を使えばファイルパスやバックスラッシュそのものを表示でき、\"を使えば文字列の中にダブルクオーテーションを含められます。

C言語の学習では、表示結果を確認しながら理解を深める場面が多くあります。エスケープシーケンスを使いこなせるようになると、コンソール出力を見やすく整えられ、プログラムの動きを確認しやすくなります。

まずは、基本的なエスケープシーケンスを何度も入力し、ソースコード上の書き方と実行結果の違いを見比べてみましょう。文字列表示の仕組みが分かると、C言語のプログラムを読む力も書く力も少しずつ高まっていきます。