文字列。概要

文字列は、特定の順序で並んだ文字のリスト (またはシーケンス) です。一連の文字全体が 1 つのエンティティとして扱われます。

文字とは、キーボードで 1 回のキーストロークで入力できるもの (文字、数字、バックスラッシュ、またはその他の文字) です。
文字列にはスペースを含めることができます: "Hello world!".
空の文字列とは文字数が 0 個の文字列です
。 Pascal は、アポストロフィ (' ') で記述されたものすべてを文字列として認識します。
Pascal では、文字列は string 型です。

input ステートメントを使用して、文字列に新しい値を書き込むことができます。 <プレ> 読み取り;   のように、単純に文字列値を変数に割り当てることもできます。 <プレ> s := 'パイソン'; 組み込み関数 length を使用して、文字列の長さを決定できます。 <プレ> n := 長さ


文字列比較

文字列は数値と同じように相互に比較できます。どちらの線が大きいか小さいかを判断できます

文字列を比較する場合、 文字コードが比較されます。文字エンコードは数百ではないにしても、数十種類あります。この概念を理解する最も簡単な方法は、最も単純な ASCII の 1 つを理解することです (こちらをお読みください)。   ;
最新のエンコーディングでは、ロシア語と英語の文字は両方ともアルファベット順に配置され、数字も小さいものから大きいものへと進むことを理解する必要があります。
たとえば、ASCII コード表では、英語の文字「A」のコードは次のようになります。 - 65、文字「a」 - 97、数字「0」コード 48 があります。ロシア語の文字は、ASCII コード テーブルの拡張部分 (128 ~ 255 の番号) にあります。大文字は小文字よりも前に配置されます(つまり、コードが小さくなります)。
使用されるエンコード テーブルのほとんどでは、パターンは同じで、小文字は大文字より後、数字は文字より前、ロシア文字は英語より後です。

例: 「機関車」  < 「蒸気船」、単語の 5 番目の文字と「in」が異なるため< 「×」 。

残念ながら、Pascal には 1 行からスペースで区切られた複数行を読み取る機能はありません。これを行うには、独自の関数を作成する必要があります。 <プレ> vars、w: 文字列; i、j、ind: 整数。 a: 文字列の配列。 始める readln(s); setlength(a, 長さ); i := 1; インド := 0; 一方、私は<長さは 始める while (i < length(s)) および ('' + s[i] = ' ') は i += 1; となります。 j := i + 1; w := '' + s[i]; while (j < length(s)) と ('' +s[j] <> ' ') は始まります w += s[j]; j += 1; 終わり; a[ind] := w; ind += 1; i := j; 終わり; write(a[0], a[1]); 終わり。

その結果、文字列の配列が得られます。

文字列は「+」記号を使用して一緒に追加できます。この操作は文字列の連結または連結と呼ばれます。
たとえば、  <プレ> s := 'こんにちは'; s1 := 'ワールド'; writeln(s + s1); 画面に「Hello world」というフレーズが表示されます。 (引用符なし)。

行インデックスの参照
文字列の各文字には独自の番号 (インデックスと呼ばれます) があり、プログラミング言語 Pascal でのインデックス付けは 1 から始まります。つまり、最初の文字のインデックスは 1、2 番目の文字のインデックスは 2 というようになります。
文字列文字には、角括弧 s[i] で示されるインデックスを使用してアクセスできます。
 
<本体>
追伸PascalABC.NET の多くの文字列メソッドは、文字列のインデックスが 0 から始まることを前提としています。当分の間は、ゼロから始まるインデックスを扱う文字列メソッドは使用しません。これらは、行のインデックスが 1 から付けられることを前提とした外部関数で同等に置き換えられます。
 

文字列 S H e l l
インデックス S[1] S[2] S[3] S[4] S[5]
文字にはインデックスによってアクセスできるため、変数ループを使用してすべての文字を反復処理し、可能なインデックス値を取得できます。たとえば、文字列 s のすべての文字コードを表示するプログラムは次のようになります。 <プレ> for i := 1 to length(s) do writeln(s[i], ord(s[i])) プログラムの説明:
1) length(s) 関数は文字列の長さを見つけます。最初の文字のインデックスは 1 で、最後の文字のインデックスは長さです。ループ変数 i は 1 から長さまでの値を受け取ります。
2) 各行では、最初にシンボル自体が表示され、次に組み込み関数 ord() によって返されるコードが表示されます。

同じ列挙をさらに短く書くこともできます。 <プレ> for c in s は、     writeln(c, ord(c)); このフラグメントでは、ループ ヘッダーがすべての文字 s をループし、変数 c に順番に配置します。

文字列を扱うときの Pascal の特徴は、文字列が変更可能なオブジェクトであることです。つまり、文字列の個々の文字を変更でき
ます。 たとえば、次のステートメントは機能します <プレ> s[5] := 'a'; 必要な変更を加えた文字から新しい文字列を作成することもできます。
たとえば、すべての文字「a」を置き換えるプログラムです。文字に「b」次のようになります: <プレ> 読み取り;     for i := 1 to length(s) do begin         if s[i] = 'a'then s[i] := 'b';    終わり; writeln; この例では、文字列 s のすべての文字をループします。ループの本体では、変数 s[i] の値をチェックします。文字が文字 'a' と一致する場合、それを 'b' に置き換えます。