level 1
空心V太阳
楼主
自学了delphi十来天,碰到一个判断回文的问题,在网上找了半天,用delphi编的有关回文判断的代码,几乎没看到,于是自编了一个,编译运行后,还算正常,但发现有这样一个问题:当编辑框输入121时,正确判断是回文,但输入1211或是12111都判断成了是回文,不知道怎么回事?(也是在回文后添加一个或多个与回文最后一个字符相同的字符都会判断成回文)
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
chr:string;
begin
i:=1;j:=0;
chr:=Edit1.Text;
while i<=Length(Edit1.Text)/2 do
begin
if leftstr(chr,1)<>rightstr(chr,1) then
j:=1; Break;
i:=i+1;
chr:=Copy(chr,2,Length(chr)-1);
end;
if j=1 then
Label2.Caption:=Edit1.Text+'不是回文'
else
Label2.Caption:=Edit1.Text+'是回文';
end;
end.
2015年07月29日 01点07分
1
代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,StrUtils;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:Integer;
chr:string;
begin
i:=1;j:=0;
chr:=Edit1.Text;
while i<=Length(Edit1.Text)/2 do
begin
if leftstr(chr,1)<>rightstr(chr,1) then
j:=1; Break;
i:=i+1;
chr:=Copy(chr,2,Length(chr)-1);
end;
if j=1 then
Label2.Caption:=Edit1.Text+'不是回文'
else
Label2.Caption:=Edit1.Text+'是回文';
end;
end.