削除された内容 追加された内容
編集の要約なし
編集の要約なし
8行目:
コンピュータにおいて全ての情報は数値([[ビット]]の並び:ビット列)として表現されるので、文字列中の個々の文字も最終的にはビット列として[[記憶装置|記憶]]され演算される。この文字とビット列との対応付けが[[文字コード]]である。プログラミング言語や[[オペレーティングシステム]]などによって扱うことのできる文字コードに違いはあるが、同じ文字コードであれば、同じビット列から同じ文字を取り出すことができる。
 
1バイトで表される数値、すなわち文字のコードと実際の文字の対応付けはいくつかの方式があり、[[ASCII]]コードが代表的なものである。その後、漢字など多くの文字を使う文化圏のために1文字を多バイト列で扱えるように言語に拡張が行われるようになった。[[Java]]など後発の言語では当初から多バイト文字([[マルチバイト文字]])に対応したものもある。多バイト文字のコードには[[ISO-2022-JP|JISコード]]、[[Extended Unix Code|EUC]]、[[Unicode]]など各種ある。
 
C言語では言語機能レベルでの文字列サポートが全く無く、文字列の長さや文字配列のバッファ長、メモリ寿命管理を意識するなどしながら慎重にプログラミングする必要がある。C言語の配列は[[第一級オブジェクト]]ではなく、したがって文字列も第一級オブジェクトではない。文字列の結合やコピーも、直感的な操作はできず、あくまで[[ポインタ (プログラミング)|ポインタ]]経由で文字の配列を扱うための[[strcat]]や[[strcpy]]といった基本的な関数しか用意されていない。しかし、[[C++]]のような[[オブジェクト指向言語]]をはじめ、[[動的言語]]・[[スクリプト言語]]・[[マクロ言語]]と呼ばれるものなど、後発の高水準言語ではそのような不便さや鬱陶しさなどなく文字列を直感的に扱える機能やライブラリが標準で用意されている。
 
文字列定数(文字列[[リテラル]])の表記には、たいていのプログラミング言語で[[ダブルクォーテーション]]の組が使われることが多いが、[[シングルクォーテーション]]の組を使える言語もある。以下はC#の例である。
 
<source lang="csharp">
string s = "abc 123";
</source>
 
== 関連項目 ==
*[[キャラクタ (コンピュータ)]]
*[[空文字列]]
*[[ワイド文字]]