文字列リテラル

ソースコード上で文字列を表現する文字列リテラルの解説です。文字列リテラルはダブルクォーテーション「"」で囲んで表現します。

// 文字列リテラル
"Hello"

文字列リテラルを出力するサンプルです。文字列リテラルはchar*の変数に代入できます。文字列リテラルは、定数として扱いた場合が、ほとんどだと思いますので「const char*」で宣言した変数に代入するのがお勧めです。printf関数の「%s」フォーマットで、文字列を出力できます。

#include <stdio.h>

int main(void) {
  const char* message = "Hello";
  
  printf("%s\n", message);
}

出力結果です。

Hello

文字列リテラルのエスケープシーケンス

文字列リテラルのエスケープシーケンスです。「\t」「\n」で、タブや改行を表現できます。

\tタブ
\n改行(LF)

文字列リテラルのエスケープシーケンスのサンプルです。

#include <stdio.h>

int main(void) {

  const char* message = "He\tllo\n";
  
  // 文字列リテラルのエスケープシーケンス
  printf("%s", message);
}

出力結果です。

He      llo

ASCIIコードの任意の文字列

「\x16進数ASCIIコード」というエスケープシーケンスを使って、ASCIIコードの任意の文字列を表現できます。以下はASCIIコードの「a」を16進数で表現しています。

\x61

文字列リテラルのエスケープシーケンスでASCIIコードの任意の文字列を使用するサンプルです。

#include <stdio.h>

int main(void) {

  const char* message = "He \x61 llo";
  
  // 文字列リテラルのエスケープシーケンス
  printf("%s\n", message);
}

出力結果です。「\x61」でaが出力されます。

He a llo

エスケープシーケンスの一覧

記号意味
\aベル
\bバックスペース
\fページ送り(クリア)
\n改行(ラインブレーク)
\r改ページ
\tタブ
\v垂直タブ
\\\
\??
\'シングルクォーテーション(')
\"ダブルクォーテーション(")
\0ヌル文字
\N8進定数
\xN16進定数

関連情報