C 言語の文字列値は,最後にヌル文字 (CHAR(0)) を持っており,印字不能文字 (バックスペースなど) を含むことができます。
印字不能文字は拡張文字列によって宣言されます。拡張文字列は,エスケープ文字としてバックスラッシュ (\) を使用し,その後に目的の印字不能文字を示す 1 つの文字を続けることによって宣言します。
この形式の文字列は,標準の文字定数の後に文字 C を付けることによって宣言します。こうすると,標準の文字定数は,C 言語の定数として解釈されます。バックスラッシュはエスケープとして扱われ,(文字列がすでにヌル文字で終わっている場合でも) 文字列の末尾にヌル文字が自動的に追加されます。
次表に,文字定数中で使用可能な拡張文字列を示します。
C 言語形式の拡張文字列
拡張文字列 | 意味 |
\a または \A | ベル |
\b または \B | バックスペース |
\f または \F | 改頁 |
\n または \N | 改行 |
\r または \R | 復帰 |
\t または \T | 水平タブ |
\v または \V | 垂直タブ |
\xhh または \Xhh | 16 進ビット・パターン |
\ooo | 8 進ビット・パターン |
\0 | ヌル文字 |
\\ | バックスラッシュ (\) |
文字列がこの表にない拡張文字列を含んでいる場合,バックスラッシュは無視されます。
また,C 文字列は有効な Fortran 文字定数でなくてはなりません。文字定数をアポストロフィで囲む場合,文字列そのものに含まれているアポストロフィは,アポストロフィを 2 つ続けて宣言します ('')。
たとえば,拡張文字列 \'string を指定すると,Fortran はアポストロフィを文字列の終わりとして解釈するので,コンパイル・エラーが発生します。正しい形式は \''string です。
文字列を引用符で囲む場合,文字列そのものに含まれている引用符は,引用符を 2 つ続けて宣言します ("")。
文字列 \ooo と \xhh を使うと,任意の ASCII 文字を 1 ~ 3 けたの 8 進文字コードとして,または 1 けたか 2 けたの 16 進文字コードとして宣言することができます。個々の 8 進の数字は 0 ~ 7 の範囲でなくてはならず,個々の 16 進の数字は 0 ~ F の範囲でなくてはなりません。たとえば,C 文字列の '\010'C と '\x08'C は,どちらもバックスペース文字の後にヌル文字を続けたものを表します。
C 文字列 '\\abcd'C は,文字列 '\abcd' にヌル文字を追加したものと等価です。文字列 ''C は ASCII のヌル文字を表します。