Skip to content

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)初始化。

另请参阅

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系