关于PChar与string 转换

路口xia车 2015-05-26 01:14:01
今天遇到一个问题,请各位帮忙看下问题所在。
var
url:PChar;
url1:PChar;
qqno:string;

begin
qqno:='1234';
url:=pchar(qqno);
url1:=pchar('1550983476');

if(url1=url)then
begin
showmessage('一样');
end else
begin
showmessage('不一样');
end;

结果:打印出不一样!!
问题:都是string 为什么这两种转换 会不一样呢 请解惑!
...全文
206 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
踏雪无痕 2015-05-26
  • 打赏
  • 举报
回复
我就说嘛,怎么1234和1550983476一样呢
路口xia车 2015-05-26
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163 的回复:
PChar 就是指向一个以Null 结尾的每个字符为一个字节的字符串的指针。 (可以看成是一个字符串),它是windowsI专用字符。 String是字符数组,以字符#0结尾;它是Delphi专用字符。 二者结构不一样。 qqno:='1234'; url:=pchar(qqno); url1:=pchar('1550983476'); url的值是1234,url1的值是1550983476,两者是不一样啊。
对不起 打错了 应该是 qqno:='1234'; url:=pchar(qqno); url1:=pchar('1234');
doloopcn 2015-05-26
  • 打赏
  • 举报
回复
网址的转码建议用 uses IdURI; ...... Respon:=TidURI.URLDecode(Http.Get(TIdURI.URLEncode(URLStr))); URLEncode编码 URLDecode解码 当然,得先引用
lyhoo163 2015-05-26
  • 打赏
  • 举报
回复
PChar 就是指向一个以Null 结尾的每个字符为一个字节的字符串的指针。 (可以看成是一个字符串),它是windowsI专用字符。 String是字符数组,以字符#0结尾;它是Delphi专用字符。 二者结构不一样。 qqno:='1234'; url:=pchar(qqno); url1:=pchar('1550983476'); url的值是1234,url1的值是1550983476,两者是不一样啊。
lyhoo163 2015-05-26
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
  url:PChar;
  url1:PChar;
  qqno:string;
begin
  qqno:='1234';
  url:=pchar(qqno);
  url1:=pchar('1234');

  if strpas(url)=strpas(url1) then
  begin
    showmessage('一样');
  end
  else begin
    showmessage('不一样');
  end;
end;
if (url1=url) then 是比较指针地址,应该修改为比较字符串值: if strpas(url)=strpas(url1) then
pathletboy 2015-05-26
  • 打赏
  • 举报
回复
url和url1你这个比较是指针比较,不是字符串比较。
var
  url: PChar;
  url1: PChar;
  qqno: string;

begin
  qqno := '1234';
  url := pchar(qqno);
  url1 := pchar('1234');

  if lstrcmp(url, url1) = 0 then
  begin
    showmessage('一样');
  end else
  begin
    showmessage('不一样');
  end;
end;

16,747

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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