2

これは私が現在使用しているコードです:

procedure TForm1.Button1Click(Sender: TObject);
var a:string;
    i:smallint;
begin
  a:=Edit1.text;
  for i:= 1 downto length(Edit1.Text) do
   begin
    Edit2.Text:= {last letter};
   end; 

プログラムが単語の最後の文字を取り、それを のEdit1.Text上に置くことを望みEdit2.Textます。どうすればよいですか?ここで必要な場合は、プログラムの写真を見ることができます。

ここに画像の説明を入力

4

2 に答える 2

0

プログラムが単語の最後の文字を取得することEdit1.Text

では、複数の単語が存在する可能性があるということですか? 次に、どの単語が必要ですか、またはすべての単語を 1 つずつ繰り返しますか?

それとも、単語が 1 つであろうと複数であろうと、「文字列全体の最後の文字」を意味しますか?

そして、本当にすべての文字を逆にする必要がありますか、それとも最後の文字だけが必要ですか?

実際、1文字だけが必要な場合、最も効率的なコードは次のようになります

if SourceString > '' then
   DestString := SourceString[ Length( SourceString )]
else
   ... the source is empty... do something like showing error

または、SysUtils組み込みの空の文字列を考慮した関数を使用する: http://www.freepascal.org/docs-html/rtl/sysutils/rightstr.html

DestString := RightStr(SourceString, 1);

1 文字だけが必要な場合に文字列全体を逆にするのはやり過ぎです。リンゴのトラックを家に持ち帰り、そのうちの 1 つだけを食べるようなものです。

于 2013-07-17T11:25:53.027 に答える