Pascal比较字符串

4
我需要检查一个字符串是否不等于空字符串。类似于:string != ''; 我该如何在Pascal中实现?
2个回答

4
不等于运算符是“<>”,例如:string <> '';

是的,你说得对,我的代码还有其他问题,所以它不能正常工作,但我已经修复了它,现在它可以无问题地运行。干杯! - dada

1
您可以使用Length函数,该函数将返回字符串的长度。
s:='My string';
x:=Length(s);
if( x > 1 ) then writeln('The string is not empty') 
            else writeln('The string is empty');

3
如何检查字符串是否为空?您不需要一个返回字符串长度的函数,只需使用简单的 str <> '' 即可,并且速度更快。这也更省打字,而在 Pascal 中没有 strlength 函数;有 Lengthstrlen 函数,但没有 strlength 函数。 - Ken White
@KenWhite 实际上仅使用 str <> '' 是不够的,因为 '' 将被扩展 为使用空格字符的 str 的长度。除非你想检查一个空或可能是 全空格string,否则 length 方法是“正确”的方法。你也可以使用隐式使用 lengthEQ/NE - Kai Burghardt
@KaiBurghardt:嗯... Pascal没有EQ/NE,使用<>将字符串变量与空字符串进行比较完全可以正常工作。你是不是误读了这篇文章的标签?也许你应该再看一遍。 - Ken White
@KenWhite 这是在 ISO/IEC 标准 10206:1990 (E) "Extended Pascal" 中定义的。在 ISO/IEC 标准 7185:1990 (E) "Pascal" 中,不可能比较长度不同的字符串类型,因此我认为 OP 是指 EP。 - Kai Burghardt
@KaiBurghardt:但是如果您看一下OP对上面Sertac答案的评论,他们说<>完全正常工作,因此显然即使十年前,OP也在使用比符合20年(现在30多年)标准的编译器更新的东西。 - Ken White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接