文字列

文字列について



文字列は、単語や文章のように文字が連なるものを指します。特に、コンピュータやプログラミングの分野で頻繁に使用される用語であり、場合によっては「ストリング」や「テキスト」とも呼ばれています。文字列の処理は、プログラミングにおける基本的な作業の一つであり、数値演算と同等に重要です。ほとんどのプログラミング言語には、文字列を扱うための明確なデータ型や手続き、関数が存在します。

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



たとえば、C#のように文字列が基本的なデータ型として組み込まれている言語もありますが、C言語のように文字列を基本型として持たない言語も存在します。伝統的なプログラミング言語の多くは、各文字を1バイトの数値で表現し、文字列を連続した文字の配列として実現しています。この場合、文字列の終わりを示すために特定の記号を使ったり、別途で長さを持たせたりする方法が取り入れられています。

C言語では、文字列の終端を示すためにヌル文字(ゼロ)を用います。これに対し、Pascalなどの言語では文字列の長さを保持する方式が取られています。また、Microsoft Windows上で広く使用されるBSTRのように、ヌル終端文字列と長さ情報を併用する構造も存在します。

データのビット列としての扱い



コンピュータ内では全ての情報はビット列として記録されるため、文字列中の各文字も最終的にはビット列として処理されます。この文字とビット列の対応関係は「文字コード」と呼ばれ、プログラミング言語やオペレーティングシステムによって異なる文字コードが使用されます。異なるプログラムやシステムが同じ文字コードを使用すれば、同じビット列から同じ文字を再現することが可能です。

文字コードの代表的なものはASCIIで、これに続き、多くの文字を対応させるための方法が開発されました。Cの標準規格C95では、複数のバイトで1文字を扱うマルチバイト文字方式や、1バイト以上の幅を持つ文字型が新たに追加されました。これにより、漢字などの表現が可能になっています。

各言語の文字列処理



後発の言語であるJavaなどでは、最初からUnicodeに基づく文字列処理が組み込まれています。Unicodeは、16ビットまたは32ビットに収まりきらない論理的な1文字を扱う必要が出てきたため、新たなアプローチが必要とされました。これにより、サロゲートペアや書記素クラスタの概念が導入され、複雑な文字列の扱いが可能になっています。

一方で、C言語は文字列処理において限界があり、プログラマーは配列の長さやメモリの管理を常に意識しながらプログラミングする必要があります。C言語では文字列は第一級のオブジェクトではなく、文字列の結合やコピーも手間がかかりますが、C++のようなオブジェクト指向言語やスクリプト言語では、より直感的に文字列を扱うことができるようになります。

まとめ



最後に、文字列定数は多くのプログラミング言語でダブルクォーテーションで囲まれる規則がありますが、シングルクォーテーションが使える言語もあります。文字列はプログラミングの中で非常に重要な要素であり、その取り扱いは言語ごとに異なります。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。