1

これは私には簡単なように思えますが、私の頭では理解できません。文字列を取得し、スペースをチェックし、最初のスペースを無視しますが、後続のスペースはすべて削除します。例えば:

MyString := 'アレキサンダー大王';

出力は「Alexander TheGreat」になります

よろしくお願いします!(DOS では Turbo Pascal 7.0 を使用)

4

2 に答える 2

2

私は通常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 を使用して、このスペースを無視し続けます。

于 2015-02-07T02:20:11.107 に答える