文字列型【string type】String型
概要

コンピュータ上で文字は「文字コード」と呼ばれる識別番号で表され、文字列も内部的にはこの番号を連ねた数値列として扱われる。文字コードは国や言語によって様々な種類があり、言語や処理系によって対応する文字の種類は異なる。
古い言語や処理系ではASCII文字、いわゆる半角英数字・記号しか格納できない仕様のものもあった。近年の多くの言語や処理系では多言語処理に対応し、Shift JISのような日本語文字コード、あるいは世界中の言語の文字を収録したUnicodeで表現される多バイト文字もそのまま格納できるようになっている。
プログラムやデータベースでは、数値としての計算が必要ない電話番号や郵便番号のような数字列も文字列型として定義される。ソースコード上で文字列型の値を記述する際は、数値など他のデータ型の値と区別するため「s = "文字列"」といったようにシングルクォーテーション(')やダブルクォーテーション(")で文字の前後を囲む文字列リテラルが用いられる。
文字列型には、格納できる長さをあらかじめ指定する「固定長文字列型」(fixed length string)と、任意の長さを格納できる「可変長文字列型」(variable length string)の二種類があり、言語や処理系によってはいずれか一方しか用意されていない場合もある。固定長は指定した長さに満たない文字列を格納すると未使用の領域が生じる。可変長は格納する文字列の長さに応じて領域の大きさが変化するため、長さの情報を別途管理する仕組みが必要となる。用途に応じてどちらの型を用いるかが選択される。
すべてのプログラミング言語に文字列型が標準で備わっているわけではない。C言語やC++言語では、一文字分の文字コードを格納する「文字型」(character type、char型)のみが用意されており、文字列は文字型の配列変数として表現する仕組みになっている。一方、JavaやPython、JavaScriptなどでは文字列型が標準で組み込まれており、開発者は内部の構造を意識せずに一つのまとまったデータとして文字列を操作できる。