空文字 【null character】 ヌル文字 / NUL / Null文字
コンピュータ上では文字に番号を対応付けた文字コードを用いて文字や文字列を表現するが、ASCIIコードなどのコード体系では0番の文字を空文字(null character)という。「NUL」「NULL」などの略号で示されることもある。
文字としての形を持たない制御文字(制御コード)の一種で、コンピュータプログラムの動作の制御などに用いられる。画面に表示することはできず、キーボードに直に対応するキーも存在しないが、一部のシステムでは「Ctrl+@」などの特殊なキー操作で送信できる場合がある。
空文字が何を意味するかはシステムによって異なるが、昔のコンピュータではプリンタなどとの通信で「何もしない」「何の文字も無い」などを表すために用いられるのが一般的だった。
プログラミングの分野では、C言語などが文字列の終端を表すコードとして空文字を使用する。Cでは文字列は文字型(char型など)の配列として表され、配列の要素として空文字('\0')が出現するとそこが文字列の終端であるとみなされる。何の文字も含まない空文字列は空文字のみを要素として持つ配列(要素数は1)となる。
一方、文字列型を組み込みデータ型として持っている言語ではこのような事情は無く、空文字列は文字通り文字数0の文字列型の値("")となる。通常の文字列操作で空文字の存在を意識することはほとんどないため、空文字列のことを指して空文字と呼ぶ人もいる。
若干紛らわしいが、「内容が空である」(null)という概念は文字列以外にも用いられ、C言語では何も参照していないポインタを表すマクロとして「NULL」が定義されており、言語によっては値が存在しないこと表す特殊な値として「null」が用意されていることもある。これらは文字列操作における空文字や空文字列とは異なるため注意が必要である。