これは私には簡単なように思えますが、私の頭では理解できません。文字列を取得し、スペースをチェックし、最初のスペースを無視しますが、後続のスペースはすべて削除します。例えば:
MyString := 'アレキサンダー大王';
出力は「Alexander TheGreat」になります
よろしくお願いします!(DOS では Turbo Pascal 7.0 を使用)
これは私には簡単なように思えますが、私の頭では理解できません。文字列を取得し、スペースをチェックし、最初のスペースを無視しますが、後続のスペースはすべて削除します。例えば:
MyString := 'アレキサンダー大王';
出力は「Alexander TheGreat」になります
よろしくお願いします!(DOS では Turbo Pascal 7.0 を使用)
私は通常Javaを使用しているので、これがあなたの要求を実行するための最良の方法であるかどうかはわかりませんが、少なくともうまくいくようです...
program nospaces(output);
var
MyString : string;
ResultStr: string;
count: integer;
i: integer;
Temp: string;
n: string;
begin
ResultStr:='';
MyString := 'Alexander The Great';
writeln(MyString);
count := 0;
for i := 1 to length(MyString) do
begin
Temp := copy(MyString, i, 1);
if Temp = ' ' then
begin
If count=0 then
begin
count := count + 1;
ResultStr := ResultStr + Temp;
end;
end
else
begin
ResultStr := ResultStr + Temp;
end
end;
writeln(ResultStr);
readln(n);
end.
私が何をした?String の文字を引用します。見つかった文字がスペースでない場合は、それを結果の文字列に追加します。文字が「スペース」であり、それが最初の場合 (count=0 であるため最初の文字です)、count に 1 を追加し、その文字を結果の文字列に追加します。次に、文字が再びスペースである場合、count=1 を使用して、このスペースを無視し続けます。