关于Strcat()的用法,在线等待!(100分)

  • 主题发起人 主题发起人 tt55
  • 开始时间 开始时间
T

tt55

Unregistered / Unconfirmed
GUEST, unregistred user!
请问strcat()是累加字符,那么出现这个问题是什么原因,我该如何解决呢?
type
pdatasource= ^tdatasource
tdatasource = record
msg :array [0..1023] of char;
end;
type
pdata = ^tdata
tdata = record
msg :array [0..199] of char;
end;
我用这个语句想对MSG进行累加。
StrCat(PDatasource^.Msg,pData^.Msg);
我想把每次收到的msg累加起来,但是但第二个MSG小于200个字节时,它就被自动补上一些乱码,
我应如何控制来保证累加是真实正确的值呢,但是我不知道每次会收到多少个字节,
只是小于200个字节。
请帮忙!谢谢!
 
  你用的数据类型不对,strcat的参数是Pchar,要以null结尾的。你的字符串没有结束符,
当然就无法结尾,后边的乱码是此内存区域里原来的随机数据。
  建议你不要用字符数组,改用字符串类型,这样就可以直接相加。string类型也可以一个字
符一个字符操作的。如果一定要用数组,就给你的串加上结束符null,不过每次操作如连接、截
短、赋值可都要手工维护这个null,太麻烦了。还可以干脆用Pchar,也能一个字符一个字符的操
作。
 
把第二个变为String型再传给函数
 
在使用PDatasource^.Msg前先进行初始化。
FillMemory(@PDatasource^.Msg[0],1024,0);
 
要确保参数是 0 (null) 终止的。
 

strcat的参数是Pchar,要以null结尾的。你的字符串没有结束符,
StrCat(Dest: PChar;
const Source: PChar): PChar;
 
接受答案了.
 
后退
顶部