能否解释一下此vb题大括号中的几句话?谢谢了~

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:20:57
Option Explicit
Private Sub Form_Click()
Dim s As String, i As Integer, flag As Boolean
s = "THIS IS A BOOK."
s = LCase(s)
Print s
flag = True
{ For i = 1 To Len(s)
If Mid(s, i, 1) = " " Then
flag = True
ElseIf flag Then
s = Left(s, i - 1) & UCase(Mid(s, i, 1)) & Right(s, Len(s) - i)
flag = False
End If
Next i}
Print s
End Sub

Option Explicit
Private Sub Form_Click()
Dim s As String, i As Integer, flag As Boolean
s = "THIS IS A BOOK."
s = LCase(s)
Print s
flag = True
{ For i = 1 To Len(s) '开始循环,循环次数是s的长度
If Mid(s, i, 1) = " " Then '如果s字符串中第i个位置的1个字符是空格
flag = True '置标记为真
ElseIf flag Then '否则(如果那个i个位置的字符不是空格),并且b\标记是真
s = Left(s, i - 1) & UCase(Mid(s, i, 1)) & Right(s, Len(s) - i) '将s字符串改为:取s左面i-1个字符,再加上那个判断字符的大写字母 再加上右面 长度-1的字符(就是将那个字符变为大写,其它字符不变)
flag = False '标记设置为假
End If
Next i}
Print s
End Sub

它的作用是将一个字符串中的单词转为首字大写。

花括号中的代码,其工作思路是:

循环处理每一个字符,如果是空格,则置标记flag为真
(这个标记用于指出,上一次处理的字符是不是一个空格。)
如果上一个字符是空格,则将当前处理的字符转为大写,并置flag为假。

这段代码存在的一个问题是,如果遇到连续偶数个空格则无法将后续的那个单词转为首字大写格式。