STRING
来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgString 最后更新: 2024-06-22
标准数据类型:8 位字符字符串。
语法
Dim variable As String [* size]说明
String 是字符数组。
- 不带
size参数声明时,它是动态调整大小的(长度从 0 字节到 2 GB)。描述符包含指向字符串的指针、其长度和已分配空间。Varptr返回指向描述符的指针;Strptr指向实际字符串。 - 带有固定大小(常量或编译时表达式)声明时,它是 QB 风格的固定长度字符串。自 fbc 1.20.0 起,未使用的字符设置为空格(ASCII 32)。在 1.20.0 之前,它们设置为 0 并以 NULL 结尾。
为与外部库兼容,在末尾隐式添加一个 NULL 字符(Chr(0))(FreeBASIC 内部忽略)。
变量名不需要 $ 后缀。在 -lang fb 中,不允许使用后缀。
示例
可变长度:
vb
Dim a As String
a = "Hello"
Print a
a += ", world!"
Print a
Dim As String b = "Welcome to FreeBASIC"
Print b + "! " + a可变长度字符串作为缓冲区:
vb
Dim As String mybigstring = Space(1024)
Print "buffer address: &h" & Hex( StrPtr( mybigstring ), 8 ) & ", length: " & Len( mybigstring )
mybigstring = "" ' Explicitly destroying
Print "buffer address: &h" & Hex( StrPtr( mybigstring ), 8 ) & ", length: " & Len( mybigstring )可变长度字符串作为 Const 参数:
vb
Sub silly_print( ByRef printme As Const String )
Print ".o0( " & printme & " )0o."
End Sub
Dim As String status = "OK"
silly_print( "Hello FreeBASIC!" )
silly_print( "Status: " + status )版本
- 在 fbc 1.20.0 之前,固定长度字符串以 NULL 结尾(使用
size + 1字节)。 - 自 fbc 1.20.0 起,固定长度字符串的未使用字符用空格初始化。
与 QB 的区别
- QB 字符串限制为 32767 个字符。
- 在 QB 中,固定长度字符串的未使用字符用空格(32)初始化。