Delphi两个取字串长度的函数strlen,length
相关资料:
http://www.delphitop.com/html/zifuchuan/1242.html
https://www.cnblogs.com/xumenger/p/4443955.html
【strlen】PChar 串专用函数:串长度
procedure TForm1.BitBtn1Click(Sender: TObject);
var s: Widestring;
begin
s := '桂枝香在故国晚秋';
ShowMessage(IntToStr(Length(String(s))));//结果不是8而是16
end;
━━━━━━━━━━━━━━━━━━━━━━━━━━
如果想得到8:
ShowMessage(IntToStr(Length(s)));//结果不是16而是8
━━━━━━━━━━━━━━━━━━━━━━━━━━
【length】Length (S): Integer; 返回参数字符串的长度。
AnsiString这是Pascal缺省的字符串类型,它由AnsiChar字符组成,其长度没有限制,同时与null结束的字符串相兼容。
在大多数情况下,AnsiString类型能被用成PChar,应该尽可能地使用AnsiString,因为它对字符串内存的管理是自动,极大地减少了应用程序中内存混乱的错误代码,因此,要尽可能地避免用PChar类型以及对它相应进行人工分配内存。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | unit Unit1; interface uses Winapi . Windows, Winapi . Messages, System . SysUtils, System . Variants, System . Classes, Vcl . Graphics, Vcl . Controls, Vcl . Forms, Vcl . Dialogs, Vcl . StdCtrls; type TForm1 = class (TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end ; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1 . Button1Click(Sender: TObject); var s: Widestring ; begin s := '桂枝香在故国晚秋' ; ShowMessage(IntToStr(Length( String (s)))); //XE显示8 //D7 结果不是8而是16 end ; procedure TForm1 . Button2Click(Sender: TObject); var s: Widestring ; begin s := '桂枝香在故国晚秋' ; ShowMessage(IntToStr(Length(s))); //XE显示8 //D7结果不是16而是8 end ; procedure TForm1 . Button3Click(Sender: TObject); var s: AnsiString ; begin s:= '桂枝香在故国晚秋' ; ShowMessage(IntToStr(Length(s))); //XE显示16 end ; procedure TForm1 . Button4Click(Sender: TObject); var s: AnsiString ; begin s:= '桂枝香在故国晚秋' ; ShowMessage(IntToStr(strlen( PWideChar (s)))); //XE显示8 end ; procedure TForm1 . Button5Click(Sender: TObject); var s: AnsiString ; begin s:= '桂枝香在故国晚秋' ; ShowMessage(IntToStr(SizeOf( PWideChar (s)))); //XE显示4(32位程序) end ; end . |
作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎关注我,一起进步!扫描下方二维码即可加我


【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步