目次
はじめに
C++ の文字リテラルには、通常の文字を直接記述する方法のほかに、数値(8 進数や 16 進数)で文字コードを指定する手段がございます。本記事では、エスケープシーケンス \ooo
(8 進数)と \xhh
(16 進数)を利用して文字を出力する方法を、変更済みのサンプルコードと共に丁寧に解説いたします。
サンプルコード
// 数値による文字コード指定を学ぶサンプル
#include <iostream>
int main(int /*argc*/, char* /*argv*/[])
{
// 8 進数 101 (十進数 65) は大文字 'A'
std::cout << "8 進数 101 が表す文字: " << '\101' << '\n';
// 16 進数 61 (十進数 97) は小文字 'a'
std::cout << "16 進数 61 が表す文字: " << '\x61' << '\n';
return 0;
}
コード解説
行番号 | 説明 |
---|---|
3 | #include <iostream> により、標準入出力用ストリームを利用いたします。 |
5 | main 関数はプログラムのエントリーポイントです。未使用の引数はコメントで抑止しております。 |
8 | '\101' は 8 進数で 101、十進数では 65、ASCII で大文字 A に相当いたします。 |
11 | '\x61' は 16 進数で 61、十進数では 97、ASCII で小文字 a に相当いたします。 |
13 | return 0; により正常終了を示します。 |
文字コードリテラル早見表
エスケープ形式 | 記述例 | 説明 | 出力例 |
---|---|---|---|
\ooo | '\101' | 0–3 桁の 8 進数で文字コードを指定 | A |
\xhh | '\x61' | 16 進数で文字コードを指定(桁数は任意) | a |
実行手順
- ソースファイルの保存
上記コードをcode_literal.cpp
という名前で保存いたします。 - コンパイル bashコピーする編集する
g++ code_literal.cpp -o code_literal
- 実行 bashコピーする編集する
./code_literal
実行結果は下記のとおりです。 lessコピーする編集する8 進数 101 が表す文字: A 16 進数 61 が表す文字: a
まとめ
8 進数および 16 進数のエスケープシーケンスを用いることで、任意の文字コードを直接指定して出力することが可能です。本記事では、'\101'
と '\x61'
を例に、それぞれ大文字 A
と小文字 a
を表示する方法をご紹介いたしました。文字コードを理解すると、制御文字の出力やバイナリデータの処理など、より柔軟な文字列操作が行えます。今後のプログラミングにお役立ていただければ幸いです。