VB中的一类问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 01:13:01
无聊拿个函数来连连编个这个小程序
Private Sub Command1_Click()
Dim i As Integer
c = Text1.Text
For i = 1 To Len(c) //问题在这()
If InStr(1, c, "B") Then
k = InStr(1, c, "B")
c = Mid(c, k + 1)
s = s + 1
End If
Next
Print s
End Sub

用instr函数计算字符串c中B的个数
其实这个函数只用循环s次就行了,也就是c中B的个数。
但for循环执行了len(c)次,这就做了不必要的执行了
我想问的是能不能改变着个函数,不去做不必要的执行。
另求个师傅,传授VB知识,解释VB各类问题。。
我意思是在仍使用instr()的基础上去解决没必要的循环

其实,vb中的for循环里面的两个值,都存在了临时变量里,即便len(c)=5,i=7它还会运转,所以不能用for
Private Sub Command1_Click()
Dim i As Integer
c = Text1.Text
i=1:s=0
Do Until i<= Len(c)
If InStr(1, c, "B") Then
k = InStr(1, c, "B")
c = Mid(c, k + 1)
s = s + 1
End If
i=i+1
Loop
Print s
End Sub

逐个字符检查,循环 Len(c) 次是必须的。

Private Sub Command1_Click()
Dim i As Integer, c As String, s As Integer
c = Text1.Text
For i = 1 To Len(c)
If Mid(c, i, 1) = "B" Then
s = s + 1
End If
Next
Print s
End Sub