文字列

提供: miniwiki
移動先:案内検索

文字列(もじれつ)は、単語や文章のような、文字の連なったもの。ストリング (string)、テキスト (text) という場合もある。コンピュータ、特にプログラミングの分野で用いることが多い。

プログラミング言語における文字列

文字列の処理は、数値演算と並んでコンピュータの基本的処理であり、多くのプログラミング言語にそれを扱うための型や手続き、関数などがあるが、C言語のようにプログラマが自分でstrcatなどの関数を呼ぶようなコードを書かなかればならない言語もある。

FORTRANに始まる伝統的な言語では、1文字は1バイトの数値で表現され、文字列は一般にその配列として扱われる。文字列の終了を示すために最後に特定の文字を入れる方式の言語と、別途長さを示す情報を持たせる言語がある(長さの情報をどう持たせるかは実装に任されている)。前者にはC言語とその派生言語があり、終了文字としてヌル文字を使う(ヌル終端文字列)。後者の例としてはPascalなどがある。

コンピュータにおいて全ての情報は数値(ビットの並び:ビット列)として表現されるので、文字列中の個々の文字も最終的にはビット列として記憶され演算される。この文字とビット列との対応付けが文字コードである。プログラミング言語やオペレーティングシステムなどによって扱うことのできる文字コードに違いはあるが、同じ文字コードであれば、同じビット列から同じ文字を取り出すことができる。

1バイトで表される数値、すなわち文字のコードと実際の文字の対応付けはいくつかの方式があり、ASCIIコードが代表的なものである。その後、漢字など多くの文字を使う文化圏のために1文字を多バイト列で扱えるように言語に拡張が行われるようになった。Javaなど後発の言語では当初から多バイト文字に対応したものもある。多バイト文字のコードにはJISコードEUCUnicodeなど各種ある。

C言語では言語機能レベルでの文字列サポートが全く無く、文字列の長さやメモリ寿命管理を意識するなどしながらプログラミングする必要がある。しかし、C++のようなオブジェクト指向言語をはじめ、スクリプト言語マクロ言語と呼ばれるものなど、後発の高水準言語ではそのような不便さや鬱陶しさなどなく文字列を扱える機能やライブラリが標準で用意されている。

関連項目

テンプレート:データ型


テンプレート:Grammatology-stub