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

Delphi 調用 WinAPI:CharNext/CharPrev 字符導航函數

     編輯:Delphi

字符指針前進/後退:正確處理 DBCS/Unicode 字符

CharNext 與 CharPrev 是 WinAPI 提供的字符級導航函數,能正確處理雙字節字符集(DBCS)與 Unicode 字符,避免簡單指針算術導致的字符截斷錯誤。

CharNext:移至下一字符

procedure TForm1.Button1Click(Sender: TObject);
var p: PChar;
begin
  p := '2009';
  p := CharNext(p);      ShowMessage(p);  {009 - 跳過 '2'}
  p := '博客';
  p := CharNext(p);      ShowMessage(p);  {客 - 正確跳過雙字節字符 '博'}
end;

CharPrev:移至上一字符(需指定緩衝區起始)

procedure TForm1.Button2Click(Sender: TObject);
var p, px: PChar;
begin
  p := '2009';
  px := CharNext(p);     {指向 '0'}
  px := CharNext(px);    {指向 '0' 第二個}
  ShowMessage(px);       {09}
  px := CharPrev(p, px); {回退一個}
  px := CharPrev(p, px); {回退到開頭}
  ShowMessage(px);       {2009}
end;

關鍵點: CharPrev 需要傳入緩衝區起始指針作為邊界檢查,確保不會越界回退。

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