パスカルで同じ行から 2 つの文字列変数を読み取ろうとしています。
2 つの文字列は空白で区切られています。
1 つの文字列のように読み取ってから、2 つの部分に分けようとしましたが、文字列が 255 文字を超えているため、問題が発生しました。
読み込もうとしている文字列は次のとおりです。
kyGOwpLobZvGynmdpiujxhUwphFsTTipuyAwpeffcckLuPouxmpQwGeMxqDoIqeWVkpdLueirlLiabfhxjnwbyMDYUfhGmlnFJdmfhtxljPqicbotSBvkKaQdsmbyrhmmSdexHjwdnecjRtzef mkhRyGOwpLobZvGynmdpiujxhUwphFsTTipuyAwpeffcckLumWbnbfdhlzFmnkkrwNsewPouxmpQwGeMxqDoIqeWVkpdLueirlLiabfhxjnwbyMDYUfhGmlnFJdmfhtxljPqicbotSBvkKaQdsmbyrhmmSdexHjwdnecjRtzeajfz`
線は常に同じ長さではなく、空のスペースは同じ場所にありません。
2番目の文字列からいくつかの文字を削除することで、最初の文字列を取得できるかどうかを調べようとしています.
例: STRING aSgasTsaRoIgfNfdsG
は肯定的な回答を返す必要があります。
これをチェックするコードは次のとおりです。
q:=1;
for m:=1 to length(b) do
begin
if b[m] = a[q] then
q:=q+1;
end;
q:=q-1;
writeln(q);
if q = length(a) then
writeln('YES')
else
writeln('NO');
ここで、a は最初の文字列、b は 2 番目の文字列です。
最初の大きな文字列を 1 つの変数として読み取り、それを 2 つの部分に分割しています。
この問題は、最初の文字列が 255 文字を超える場合に発生します。そのため、同じ行から 2 つの文字列を読み取る方法を知りたいのです。
文字列を区切るために使用しているコード:
readln(x);
x:=LONGSTRINGHERE;
blank:=' ';
Location := Pos(blank, x);
a:=Copy(x, 1, (Location-1));
b:=Copy(x, (Location+1), length(x));