Turbo Pascal中是否存在左右语句的对正字符串



我在Turbo Pascal 6中搜索了";rset";以及";lset"-QB 4.5的语句在其变量字节内对字符串进行对正,这在Turbo Pascal中是等价的,但没有发现任何结果,就好像Turbo Pascal不需要这些语句,或者Turbo Pascal总是向左对字符串。这是真的吗?

在Turbo Pascal 6.0中,string类型保留256字节的内存。

s: string;

内存布局是第一个字节(值0..255(表示字符串的长度。以下字节包含字符,始终左对齐

前面的一个变体是,您可以声明具有最大长度的字符串变量,如f.ex.

s: string[10];

此示例将保留11个字节的内存。同样,第一个字节表示实际字符串的长度(在这种情况下为0..10(

类似的语句后的内存内容

s := 'test';

将是

4, 't', 'e', 's', 't', #0, #0, #0, #0, #0, #0

没有修改字符分配以右对齐字符数据的语句(如QBasic中的RSET(。

然而,理论上,你可以在字符串前面加一系列空字符,例如s :=#0#0#0#0#0#0+'test';,以达到类似的效果,但长度将成为字符串变量的长度。

10, #0, #0, #0, #0, #0, #0, 't', 'e', 's', 't'

在这种情况下,空字符是字符串的一部分,这可能会有问题。字符串的末尾可能使用null字符。此外,由于在某些情况下打印过程可能会省略空字符,而在其他情况下则不会。这可能会导致打印输出或其他方面的数据错位。

相关内容

  • 没有找到相关文章

最新更新