如何清除字符串变量?

时间:2014-02-07 18:19:19

标签: pascal

我需要多次使用一个字符串变量来检查工作是否是回文。我正在使用此代码:

var
s:string;
back:string;
x,n:integer;
d:array[1..n] of string;
begin
read(n);
for i:=1 to n do begin
readln(s);
s:= Lowercase(s);
for x:=length(s) downto 1 do begin

back:=back + s[x];

if back=s then begin
writeln('It's a palindrome');
end;

但是如果我的n高于1,变量'back'将与第一个循环相同,因此它不会再找到回文。我知道,对于数字零是中性的,这就是我如何重置它,但我不知道字符串。如果我使用

back:=' ';

单词也不会是回文因为我猜的空间,它只是不适用于此。

2 个答案:

答案 0 :(得分:0)

back := '';

但你可以用其他方式检查回文:

len := length(x);
is_palindrome := true;
for x := 1 to len do begin
    if s[x] <> s[len - x + 1]
    then is_palindrome := false; break; end;
end;

if is_palindrome
then begin
    writeln('It''s a palindrome');
end
else begin
    writeln('It''s not a palindrome');
end;

答案 1 :(得分:0)

从你的评论中我认为易用性是一个标准。如果您碰巧使用Free Pascal,请轻松尝试

uses StrUtils;

if ReverseString(s)=s then
   writeln('It''s a palindrome')
else
   writeln('It''s not a palindrome');