今天遇到一個問題,請各位幫忙看下問題所在。
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 為什么這兩種轉換 會不一樣呢 請解惑!
uj5u.com熱心網友回復:
PChar 就是指向一個以Null 結尾的每個字符為一個位元組的字串的指標。 (可以看成是一個字串),它是windowsI專用字符。String是字符陣列,以字符#0結尾;它是Delphi專用字符。
二者結構不一樣。
qqno:='1234';
url:=pchar(qqno);
url1:=pchar('1550983476');
url的值是1234,url1的值是1550983476,兩者是不一樣啊。
uj5u.com熱心網友回復:
網址的轉碼建議用uses
IdURI;
......
Respon:=TidURI.URLDecode(Http.Get(TIdURI.URLEncode(URLStr)));
URLEncode編碼
URLDecode解碼
當然,得先參考
uj5u.com熱心網友回復:
對不起 打錯了 應該是
qqno:='1234';
url:=pchar(qqno);
url1:=pchar('1234');
uj5u.com熱心網友回復:

我就說嘛,怎么1234和1550983476一樣呢
uj5u.com熱心網友回復:
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;
uj5u.com熱心網友回復:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/84772.html
標籤:語言基礎/算法/系統設計
