文字列 【character string】 ストリング
プログラミング言語やデータベース管理システム(DBMS)、表計算ソフトなどで用いられる情報やデータの表現形式の一つで、文字を表すデータが一列に並んだデータ列のことを文字列データという。
コンピュータ上では文字データ中の空白や改行も特殊な文字の一種(空白文字、改行文字)とされるため、これらを含んでいても全体を単一の文字列として扱うことがある。また、何も文字が存在しない状態を「空文字列」(長さ0の文字列)として文字列の一種として扱う場合もある。プログラム上の文字列データは日常的な意味での「文字が並んだもの」から想像されるものとは若干の違いがある。
文字列と文字コード
コンピュータ内部ではすべてのデータは2進数の値の並び(ビット列)として表現されるため、文字も内部的には何らかのビット列のパターンに対応付けて表現される。どのビットパターンがどの文字を表しているかを定めた規約を「文字コード」と呼び、様々な種類がある。
同じ文字でも文字コードが異なれば対応するビット列も異なるため、ある文字コードで書かれた文字列データを別のコードに従って解釈してしまうと、元とはまったく異なる文字列に変換されてしまう「文字化け」が発生する(文字化けはデータ自体の棄損など他の要因でも生じる)。
文字列とデータ型
文字列データの仕様や扱い方はデータベース管理システムやプログラミング言語によって異なり、固定長か可変長か、1バイト文字のみか多バイト文字も格納可能かといった違いがある。一つのシステムにこれらの仕様が異なるいくつかのデータ型が用意されていることもある。
比較的新しい設計の言語では言語仕様に最初から組み込まれたプリミティブデータ型(組み込みデータ型)として「文字列型」(String型やText型など)が用意されていることが多い。C言語の文字型(char型)の配列のように、文字列型が存在せず他のデータ型とデータ構造を組み合わせて文字列を格納する言語もある。
文字列型が用意されている言語では標準で文字列を操作するための関数(文字列関数)や、String型など専用のクラスが用意されていることが多い。文字列の連結や分割、指定位置から指定文字数の取り出しや挿入、文字列の検索や置換などの機能が提供される。