string类型的字符串的结束符是什么?

poppybb 2003-10-08 10:31:30
string类型的字符串的结束符是什么?
...全文
436 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
reallike 2003-10-08
  • 打赏
  • 举报
回复
嗬嗬,别犟嘴了。

delphi developer guide讲得很清楚。

我说的最后一位是调不出来的,用index也调不出来。

因为这个都是自动生成的。

而且在书里面都有内存图示表示。

为什么不看看书呢?这个值得讨论吗?
aiirii 2003-10-08
  • 打赏
  • 举报
回复
string 的第一位记载了该字符的长度啊!!不是以 #0 来判断的!
tiexinliu 2003-10-08
  • 打赏
  • 举报
回复
为什么不把string中的没一个字符保存到一个数组中看看呢,我没有看到第0位是长度.我用的是
delphi7
dickeybird888 2003-10-08
  • 打赏
  • 举报
回复
哈哈!
reallike 2003-10-08
  • 打赏
  • 举报
回复
楼上的你别误导别人。

看看delphi developer guide就都明白了。
tiexinliu 2003-10-08
  • 打赏
  • 举报
回复
string以#0开头,以#0结束
比如:str:='abcde'
则:
str[0]=#0;
str[6]=#0;
str[1]=a;
reallike 2003-10-08
  • 打赏
  • 举报
回复
哦,我记错了。最后是个空字符结束。也就是#0不是空格#10结束。记错了。抱歉。
reallike 2003-10-08
  • 打赏
  • 举报
回复
yjs_lh(长风浪子)说的是与delphi 1.0所兼容的ShortString的定义方法。

255 characters + 1 length byte = 256

第零位是长度位。而标准string已经修改了。

如下节选自delphi6 developer guide:

In memory, the string resembles an array of characters in which the 0th character in the string
contains the length of the string, and the string itself is contained in the following characters.
The storage size of a ShortString defaults to the maximum of 256 bytes. This means that you
can never have more than 255 characters in a ShortString (255 characters + 1 length byte =
256). As with AnsiString , working with ShortString is fairly painless because the compiler
allocates string temporaries as needed, so you don’t have to worry about allocating buffers for
intermediate results or disposing of them as you do with C.
reallike 2003-10-08
  • 打赏
  • 举报
回复
string的最后一个字符是一个空格符。pascal语法表示也就是#10。

所以你看大家在加换行符的时候总是这样写 + #13#10 +

也就是如果是人为加入字符,一定注意加入一个空格字符。

嗬嗬,C语言里面\0是一个空格符。

pascal里面的string 是编译器预定义的。已经成为了一种类型。

标准string也就是AnsiString最大能表示255个字符,嗯?那第256个在哪里?

详情请好好看一本书《delphi 开发人员指南》

唉……………………
CloneCenter 2003-10-08
  • 打赏
  • 举报
回复
yjs_lh(长风浪子) 说的仅仅是 ShortString 类型,对于 AnsiString 类型来说,这个结束符应该是隐含的,对于程序员是透明的,不需要象 C 那样明确的给一个 \0。
vargent77 2003-10-08
  • 打赏
  • 举报
回复
我记得就是‘\0’
mengxiang5160 2003-10-08
  • 打赏
  • 举报
回复
可能是‘\0’
在 c语言中 是‘\0’
应该是统一的
这个符号式系统默认的看不到的
yjs_lh 2003-10-08
  • 打赏
  • 举报
回复
Delphi的字符串跟C/C++字符串处理方式不大一样。
它的第一个字记录字符的长度,后面没有结束符。

str: String;

...
str := 'abcde';
则:
str[0]=5;
str[1]='a';
fj218 2003-10-08
  • 打赏
  • 举报
回复
一般声明的string都是Ansistring,而Ansistring是和pchar兼容的,所以string也是以#0结尾的

5,387

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧