文字にはインデックスによってアクセスできるため、変数ループを使用してすべての文字を反復処理し、可能なインデックス値を取得できます。たとえば、文字列 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' に置き換えます。