C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++の文字リテラルとは?種類とエスケープシーケンスの使い方を解説

文字リテラルとは

文字リテラル(character literal)とは、プログラミングにおいて、ソースコード内で単一の文字の値を表現するためのリテラルの一種です。C++では、文字リテラルは定数文字で構成され、対象となる文字をシングルクォーテーション(一重引用符)で囲むことで表されます。

文字リテラルの2つの種類

C++の文字リテラルには、以下の2種類が存在します。

  • ナロー文字リテラル:char型の文字リテラル。例:'a'
  • ワイド文字リテラル:wchar_t型の文字リテラル。例:L'a'(先頭に L を付ける)

通常のASCII文字などを扱う場合はchar型のナロー文字リテラルを使用し、Unicodeなどの多バイト文字セットを扱う場合にはwchar_t型のワイド文字リテラルを使用します。

予約文字とエスケープシーケンス

文字リテラルには任意の図形文字を使用できますが、改行('\n')、バックスラッシュ('\\')、シングルクォート(''')、ダブルクォート('"')といった特別な意味を持つ予約文字は、そのまま記述することができません。

こうした予約文字を表現するには、エスケープシーケンスを使います。主なエスケープシーケンスは以下の通りです。

  • '\n':改行(ニューライン)
  • '\t':水平タブ
  • '\b':バックスペース
  • '\\':バックスラッシュ自体
  • '\0':ヌル文字(空文字)

サンプルコード

以下は、代表的なエスケープシーケンスを文字リテラルとして定義し、出力する例です。

#include <iostream>
using namespace std;

int main() {
    char newline = '\n';   // 改行
    char tab = '\t';       // タブ
    char backspace = '\b'; // バックスペース
    char backslash = '\\'; // バックスラッシュ
    char nullChar = '\0';  // ヌル文字

    cout << "Newline character: " << newline << "ending" << endl;
    cout << "Tab character: " << tab << "ending" << endl;
    cout << "Backspace character: " << backspace << "ending" << endl;
    cout << "Backslash character: " << backslash << "ending" << endl;
    cout << "Null character: " << nullChar << "ending" << endl;
}

実行結果

このプログラムを実行すると、以下のような出力が得られます。

Newline character:  ending
Tab character:  ending
Backspace character:  ending
Backslash character: \ending
Null character:  ending

改行・タブ・バックスペース・ヌル文字は画面上に表示できない制御文字であるため、出力結果では該当部分が空白のように見えます。一方、バックスラッシュは表示可能な文字なので「\」として出力されていることが確認できます。

  1. C#の整数リテラルとは何か?基本と使い方を解説

    C#における整数リテラルとは、ソースコードの中に直接記述できる整数値の定数のことです。整数リテラルは、10進数または16進数の定数として表現できます。基数を指定するプレフィックス(接頭辞)数値の先頭に付けるプレフィックスによって、基数(radix)を指定します。0x または 0X:16進数であることを示しますプレフィックスなし:10進数として扱われます型を指定するサフィックス(接尾辞)さらに、整数リテラルにはサフィックスを組み合わせて指定することもできます。U は符号なし(unsigned)、L は long 型をそれぞれ表し、大文字・小文字のいずれでも使用可能です。整数リテラルの主な例200

  2. C#の文字列リテラルとは?基本的な書き方と使い方を解説

    文字列リテラルとはC#における文字列リテラル(文字列定数)とは、二重引用符 " " または @" " で囲まれた一連の文字のことです。文字列の中には、文字リテラルと同様に以下のような要素を含めることができます。通常の文字(プレーン文字)エスケープシーケンス(例: \n、\t)ユニバーサル文字(Unicode文字)文字列リテラルの記述例"Hi, User" "Youre Welcome"通常の二重引用符で囲んだ場合はエスケープシーケンスが有効になりますが、先頭に @ を付けた「逐語的識別文字列(verbatim st