如何确定 VFP 9 中字符串的结尾?
How to determine the end of string in VFP 9?
在某些编程语言中,例如 C,字符串的结尾可能被标记为单独的空终止符。
如何判断当前符号是否为字符串结尾?
目前我使用一些字符串函数的调用,但我想它可能更容易执行。
*the string's end
IF ISBLANK(SUBSTR(str, pos, 1) == .T. AND CHR(32) != SUBSTR(str, pos, 1)
RETURN .T.
ENDIF
无需担心 VFP 中的 C 风格字符串终止。
假设您不关心示例中的最后一个字符是什么:
return (pos = len(str))
如果你想忽略空格:
return (pos = len(alltrim(str))
VFP 字符串不是 C 中的 ASCIIZ 字符串。VFP 字符串可以包含任何 ASCII 字符,包括字符 0 - chr(0) - 这是 C 风格语言中的字符串终止字符。
通常 VFP 中字符串的结尾与其长度相同。但是,尽管您的问题并不清楚,但有时您会从 C 源代码(即:win32 调用)中获取一个字符串,其中多个字符串值由 chr(0) 值分隔。您可以使用像 alines() 这样的代码轻松地将这样的字符串解析为多个字符串。即:
? ALines(laLines, "hello"+Chr(0)+"there",1+4,Chr(0)) && prints 2
display memory like laLines && shows two string values
您还可以使用许多字符串函数,例如 at()、occurs()、asc() ... 来定位、计数...该字符。
在某些编程语言中,例如 C,字符串的结尾可能被标记为单独的空终止符。
如何判断当前符号是否为字符串结尾?
目前我使用一些字符串函数的调用,但我想它可能更容易执行。
*the string's end
IF ISBLANK(SUBSTR(str, pos, 1) == .T. AND CHR(32) != SUBSTR(str, pos, 1)
RETURN .T.
ENDIF
无需担心 VFP 中的 C 风格字符串终止。
假设您不关心示例中的最后一个字符是什么:
return (pos = len(str))
如果你想忽略空格:
return (pos = len(alltrim(str))
VFP 字符串不是 C 中的 ASCIIZ 字符串。VFP 字符串可以包含任何 ASCII 字符,包括字符 0 - chr(0) - 这是 C 风格语言中的字符串终止字符。 通常 VFP 中字符串的结尾与其长度相同。但是,尽管您的问题并不清楚,但有时您会从 C 源代码(即:win32 调用)中获取一个字符串,其中多个字符串值由 chr(0) 值分隔。您可以使用像 alines() 这样的代码轻松地将这样的字符串解析为多个字符串。即:
? ALines(laLines, "hello"+Chr(0)+"there",1+4,Chr(0)) && prints 2
display memory like laLines && shows two string values
您还可以使用许多字符串函数,例如 at()、occurs()、asc() ... 来定位、计数...该字符。