pchar以什么字符结束,抢答 ( 积分: 20 )

  • 主题发起人 主题发起人 我爱PASCAL
  • 开始时间 开始时间

我爱PASCAL

Unregistered / Unconfirmed
GUEST, unregistred user!
先答者得10分,后答者平分10分
 
pchar以字符'r'结束
 
回答错误,扣10分
 
晕倒,pchar的结束字符不是r难道是p啊?
 
#0结束

加上一个问题
Var
s: string[4];
longs: string;
Begin
s := '1234';
longs := '1234'
? sizeof(s) 和 sizeof(longs) 请直接回答
end;
 
kaida回答正确加十分
ZBJ2001_KF也正确,给八分
LeeChange最佳幽默奖,给二分
 
PChar不是Pointer吗?有结尾字符吗?
 
to LeeChange兄:
啊呀——没想到老兄也有失手的时候啊...

大家再仔细看看:标题就是一个陈述句——“pchar以什么字符结束”
那么如果要答案,就要将陈述句转换为问句——“pchar以什么字符结束?”
两者相结合,于是就能得到不二的标准答案——“什么”

pchar就是以 “什么” 字符结束的! [:D][:D][:D]

收分收分~~ :P
 
啊,妙啊,那结束的就是个“么”字符了。完全正确,加十分。
 
我想答,一看原来已经结贴放分了耶。
 
怎么搞成脑筋急转弯了,我是真的想问的,以前听说有结束符,便又记不大清,所以落实一下。
下面是我编的原生态的strcopy
procedure MyStrCopy(Dest: PChar
const Source: PChar);
var
P: PChar;
begin
P := Source;
repeat
Dest^ := P^;
if P^ = #0 then Break;
inc(P);
inc(Dest);
until False;
end;
 
if P^ = NULL then Break;
你要先测试Dest,Source分配的空间大小是否一致,如果不测试,那么你的程序有风险。
 
不是说#0结束麻,怎么又是null,null到底是个什么值。
不是说strcopy不测大小,strlcopy才测?
改一下也简单:
procedure MyStrCopy(Dest: PChar
const Source: PChar);
var
P: PChar;
begin
P := Source;
repeat
if Dest^ <> #0 then Dest^ := P^ else Break;
if P^ = #0 then Break;
inc(P);
inc(Dest);
until False;
end;
 
null = #0

var
P: PChar;
begin
if sizeof(Dest)=sizeof(Source) then
begin
P := Source;
repeat
Dest^ := P^;
if P^ = null then Break;
inc(P);
inc(Dest);
until False;
end;
end;



var
P: PChar;
begin
Getmem(Dest, sizeof(Source));
P := Source;
repeat
Dest^ := P^;
if P^ = #0 then Break;
inc(P);
inc(Dest);
until False;
end;
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
802
DelphiTeacher的专栏
D
D
回复
0
查看
747
DelphiTeacher的专栏
D
D
回复
0
查看
696
DelphiTeacher的专栏
D
后退
顶部