文字列とは? わかりやすく解説

もじ‐れつ【文字列】


文字列

オフィスソフトのほかの用語一覧
ワープロソフト:  文字修飾  文字書式  文字変形ツール  文字列  ノンブル  OASYS  Pocket Word

文字列

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/09 16:15 UTC 版)

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

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

文字列の処理は、数値演算と並んでコンピュータの基本的処理である。多くのプログラミング言語に文字列を扱うためのデータ型やサブルーチン手続き、関数、メソッドとも)などが用意されている。C#のように文字列が組み込みの基本型[注釈 1]として用意されている言語もあれば、C言語のように文字列を基本型として持たない言語もある。

FORTRANに始まる伝統的な言語では、1文字は1バイトの数値で表現され、文字列は一般にメモリ上で連続する文字のシーケンス、つまり文字の配列によって実現される。文字列の終了を示すために末尾に特定の文字を番兵として格納する方式の言語と、別途長さを示す情報を持たせる言語がある(長さの情報をどう持たせるかは実装に任されている)。前者の主要な採用例にはC言語C++があり、終了文字としてヌル文字を使う(ヌル終端文字列もしくはゼロ終端文字列とも)。後者の例としては拡張Pascal(Extended Pascal、ISO/IEC 10206)やObject Pascalなどがある[注釈 2]Microsoft WindowsおよびCOM環境でよく使われるBSTRのように、ゼロ終端文字列と長さ情報を併用するデータ構造もある[5]

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

1バイトで表される数値、すなわち文字のコードと実際の文字の対応付けはいくつかの方式があり、ASCIIコードが代表的なものである。その後、漢字など多くの文字を使う文化圏のために1文字を多バイト列で扱えるように言語に拡張が行われるようになった。例えばC言語の標準規格C95では、従来の1バイト文字型charのシーケンスで論理的な1文字を表現するマルチバイト文字方式をサポートするためのライブラリ、および1バイト以上の情報を格納できるワイド文字wchar_tが追加された。多バイト文字のコードにはJISコードEUCUnicode (UTF-8/UTF-16/UTF-32) など各種ある。Javaなど後発の言語では当初からUnicodeベースの文字・文字列に対応したものもある。なお、Unicodeにサロゲートペア結合文字書記素クラスタ (grapheme cluster) が導入されたことで、論理的な1文字が16ビットあるいは32ビットの範囲に収まりきらなくなったため、データ構造的には文字ではなく文字列として扱わなければならないケースもある。

C言語では言語機能レベルでの文字列サポートが全く無く、文字列の長さや文字配列のバッファ長、メモリ寿命管理を意識するなどしながら慎重にプログラミングする必要がある。C言語の配列は第一級オブジェクトではなく、したがって文字列も第一級オブジェクトではない。文字列リテラルの記法やコンパイル時のリテラル連結機能はあるものの、実際の型はヌル終端の固定長文字配列である(固定長文字配列の初期化やポインタへの代入にのみ使用することができる)[6]。文字列の結合やコピーも、直感的な操作はできず、あくまでポインタ経由で文字の配列を扱うためのstrcatstrcpyといった基本的な関数しか用意されていない。しかし、C++のようなオブジェクト指向言語をはじめ、動的言語スクリプト言語マクロ言語と呼ばれるものなど、後発の高水準言語ではそのような不便さや鬱陶しさなどなく文字列を直感的に扱える機能やライブラリが標準で用意されている。

JavaやC#のような後発言語では、文字列は文字配列によるバッファとその長さ情報を含むカプセル化されたデータ構造によって実現されることが一般的となっている。また、ヌル文字は終端の役割を持たないので、文字列シーケンス中にヌル文字を含むこともできる。Javaの文字型charは2バイトのUTF-16であり、また文字列クラスjava.lang.Stringで使われている内部表現もUTF-16だが、Javaクラスファイルの定数テーブルなどで使われているエンコードはModified UTF-8と呼ばれる特殊な形式である(ヌル終端文字列であってもシーケンスの途中にヌル文字に相当する代替データを含むこともできるように修正が施されている)[7]

文字列定数(文字列リテラル)の表記には、たいていのプログラミング言語で開始記号と終了記号にダブルクォーテーションの組が使われることが多いが、シングルクォーテーションの組を使う言語や、必要に応じてどちらも使える言語もある。以下はC#の例である。

string s = "abc 123";

C++の標準ライブラリで定義されているstd::basic_stringクラステンプレートはC文字列との相互運用性があり、また内部バッファとして使われている文字配列の要素を直接変更することもできるようになっているが、後発の言語およびプログラミング環境では、通常の文字列をイミュータブルなデータ型として提供していることが多い。代表例はJavaのStringクラスと.NETのSystem.Stringクラスである。文字列バッファを直接編集する場合は、JavaではStringBufferクラスやStringBuilderクラスを、.NETではSystem.Text.StringBuilderクラス[8]を使う。Objective-Cの場合、通常のNSStringクラス[9]はイミュータブルであり、編集可能な文字列型として別途NSMutableStringクラス[10]が用意されている。

脚注

注釈

  1. ^ C#の場合、stringキーワードは.NETSystem.String型のエイリアス(別名)だが[1]、特に明示的にアセンブリ参照設定などを追加することなく標準的に使える型であり、組み込み型 (built-in type) のひとつという扱いになっている[2]
  2. ^ 標準Pascal(のちにISO 7185として標準化された仕様)は、文字列型をサポートせず、文字の配列を使うしかなかったが、Pascalの初期の実装の1つであるUCSD Pascalにて、可変長の文字列型であるstringおよび関連する手続きや関数が導入された[3]。これはバッファとなる配列の先頭要素に文字列の長さ情報を持たせるデータ構造であり、length-prefixed stringまたはUCSD stringとも呼ばれる[4]。この文字列型は、のちに多くのPascal処理系で拡張機能として実装されるようになり、Pascal文字列とも呼ばれている。

出典

関連項目


文字列(テロップ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/28 16:19 UTC 版)

完全走破!日本縦断2002キロ高速道路の旅」の記事における「文字列(テロップ)」の解説

完全走破!日本縦断2002キロ高速道路の旅題名大きいもの)はオープニング二日目最初東名高速静岡県内蒲原BS付近)に表示されるインターチェンジまたはジャンクションサービスエリア及び東北道首都高東名名神中国道関門橋北九州道路/北九州直方道路九州道に入る場合のみ、テロップ表示される首都高北九州道路/北九州直方道路ICJCT・SAPA表示されない。なお、東北自動車道高舘PAおよび東名高速及び名神高速道路小牧ICテロップ表記が行われずに通過する。また進行方向から見て流入のみのハーフインターチェンジ東京IC瀬田西IC中国吹田IC中国池田IC)も同様である。 ICJCT場合画面右下インターチェンジ名あるいはジャンクション名が表示されSA・PA場合画面右上実際予告案内使われる記号添えて表示されるJCT場合は「小牧JCT」などと名称に「JCT」の文字列を加えて表示される。なお、サービスエリア併設されている大津ICだけは例外サービスエリア名とセット表示されている。また浦和本線料金所鳥栖JCT除いて全ての名称には読み仮名振られている。 実際にICJCT・SAPAテロップ表示されるのは出口または入口の約1km手前付近表示されるが、浪岡IC等のように出口直前表示される場合もある。 ICJCT・SAPAテロップのうち、東北自動車道緑色東名高速道路ピンク色名神高速道路は濃い青色中国自動車道は薄い青色九州自動車道オレンジ色表示されている。これは日本道路公団時代道路施設協会発行していた「SAPAガイド」のラインカラーでもあった。

※この「文字列(テロップ)」の解説は、「完全走破!日本縦断2002キロ高速道路の旅」の解説の一部です。
「文字列(テロップ)」を含む「完全走破!日本縦断2002キロ高速道路の旅」の記事については、「完全走破!日本縦断2002キロ高速道路の旅」の概要を参照ください。

ウィキペディア小見出し辞書の「文字列」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ

「文字列」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

「文字列」に関係したコラム

辞書ショートカット

すべての辞書の索引

「文字列」の関連用語




4
文字関数 デジタル大辞泉
100% |||||



7
オートコンプリート デジタル大辞泉
100% |||||

8
ヒヤドキュメント デジタル大辞泉
100% |||||

9
完全一致 デジタル大辞泉
100% |||||


文字列のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



文字列のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【文字列】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの文字列 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの完全走破!日本縦断2002キロ高速道路の旅 (改訂履歴)、Javaの文法 (改訂履歴)、dc (UNIX) (改訂履歴)、strtold (改訂履歴)、strtod (改訂履歴)、strtoul (改訂履歴)、strtof (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS