关于字符串(0)

  • 主题发起人 主题发起人 yfoxyfox
  • 开始时间 开始时间
Y

yfoxyfox

Unregistered / Unconfirmed
GUEST, unregistred user!
for (i=1;i<=length(str);i++)showmessage(string(@str));为什么不能正常显示?
 
showmessage(string(@str));是C语言的格式,应该这样 showmessage(string(str));
 
str是单个字符,可以正常运行@str是从第i个字符开始的字符串?运行时@str[1]是正常显示的,后面就报错了
 
string前面8个字节是引用计数和长度。所以你showmessage(string(@str[1]))是正常的。后面的报错是因为把一部分字符串的内容当作引用计数和长度了。showmessage(str)不报错是因为构造了一个新的只包含一个字符的string。
 
明白了。我看到一本书上说 pos(subStr,string(@Sourcestring))这样的代码可能会发生致命错误,它会修改Sourcestring字符串?不理解。
 
反汇编看看是如何编译pos(subStr,string(@Sourcestring))的就知道了。书上说什么不可尽信 自己试过才知道。
 
原来你要显示后面所有的,呵呵,简单啊:str:=str+#0#0
// 必须加for (i=1;i<=length(str);i++) showmessage(string(PChar(@str)));
 
后退
顶部