首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 調用 WinAPI:lstrcmp/lstrcmpi 字符串比較

     編輯:Delphi

區分/不區分大小寫的字符串比較,返回 -1/0/1

lstrcmp 區分大小寫,lstrcmpi 不區分。返回值:-1(小於)、0(相等)、1(大於)。與 Delphi CompareStr/CompareText 及 StrComp 系列行為不同。

基本比較示例

const Msgs: array[-1..1] of Char = ('<', '=', '>');

procedure TForm1.Button1Click(Sender: TObject);  {'A' vs 'B'}
var p1, p2: PChar; n: Integer;
begin
  p1 := 'A'; p2 := 'B';
  n := lstrcmp(p1, p2);   ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {A < B}
  n := lstrcmpi(p1, p2);  ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {A < B}
end;

procedure TForm1.Button2Click(Sender: TObject);  {'A' vs 'a'}
var p1, p2: PChar; n: Integer;
begin
  p1 := 'A'; p2 := 'a';
  n := lstrcmp(p1, p2);   ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {A > a}
  n := lstrcmpi(p1, p2);  ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {A = a}
end;

procedure TForm1.Button3Click(Sender: TObject);  {'ABC' vs 'abcd'}
var p1, p2: PChar; n: Integer;
begin
  p1 := 'ABC'; p2 := 'abcd';
  n := lstrcmp(p1, p2);   ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {ABC < abcd}
  n := lstrcmpi(p1, p2);  ShowMessageFmt('%s %s %s', [p1, Msgs[n], p2]); {ABC < abcd}
end;

與 Delphi 原生函數對比

procedure TForm1.Button4Click(Sender: TObject);  {CompareStr/CompareText}
var p1, p2: PChar; n: Integer;
begin
  p1 := 'A'; p2 := 'a';
  n := CompareStr(p1, p2);  ShowMessage(IntToStr(n));  {-32}
  n := CompareText(p1, p2); ShowMessage(IntToStr(n));  {0}
end;

procedure TForm1.Button5Click(Sender: TObject);  {StrComp 系列}
var p1, p2: PChar; n: Integer;
begin
  p1 := 'A'; p2 := 'a';
  n := StrComp(p1, p2);     ShowMessage(IntToStr(n));  {-32}
  n := StrIComp(p1, p2);    ShowMessage(IntToStr(n));  {0}
  n := StrLComp(p1, p2, 1); ShowMessage(IntToStr(n));  {-32}
  n := StrLIComp(p1, p2, 1);ShowMessage(IntToStr(n));  {0}
end;

差異總結: WinAPI lstrcmp/i 返回 -1/0/1;Delphi CompareStr 返回 ASCII 碼差值;StrComp 行為類似 CompareStr。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved