否,Case "nuts" To "soup"为在字典中可以排列在该两词之间的所有字母组合,如:“oad”,“sip”等
Private Sub Command1_Click() Dim a() As String Dim i As Long Dim b As String
ReDim a(0) As String a(0) = "nuts" Do Until a(i) = "soup" DoEvents b = a(i) i = i + 1 ReDim Preserve a(i) As String
Mid$(b, 4, 1) = Chr(Asc(Mid$(b, 4, 1)) + 1)
If Mid$(b, 4, 1) > "z" Then Mid$(b, 4, 1) = "a" Mid$(b, 3, 1) = Chr(Asc(Mid$(b, 3, 1)) + 1) If Mid$(b, 3, 1) > "z" Then Mid$(b, 3, 1) = "a" Mid$(b, 2, 1) = Chr(Asc(Mid$(b, 2, 1)) + 1) If Mid$(b, 2, 1) > "z" Then Mid$(b, 2, 1) = "a" Mid$(b, 1, 1) = Chr(Asc(Mid$(b, 1, 1)) + 1) End If End If End If a(i) = b Loop
For i = 0 To UBound(a) DoEvents Select Case a(i) Case "nuts" To "soup" Text1 = CStr(CLng(Text1) + 1) End Select Next iEnd Sub很多次啊!
兄弟试试下面代码:Private Sub Command1_Click() MsgBox betweenthem("qhdfhdsfhsdfdsghdgg") MsgBox betweenthem("vssffhdghhgf") End Sub Function betweenthem(ByVal temp As String) As Boolean Select Case temp Case "nuts" To "soup" betweenthem = True Case Else betweenthem = False End Select End Function
to northwolves(野性的呼唤):没错啊!你的程序也证明了楼主的话是对的啊!你的程序在执行时第一个显示true,第二个是false因为第一个送进去字符串的第一个字母是"q",他大于"n",小于"s",所以显示TRUE而第二个正好相反,所以显示FALSE比较的时候,他不会管你有多少个字符的!
to northwolves(野性的呼唤) and Gelim(Gelim) : 两位老兄用不着争了,显然楼主这个理解起来模棱两可的句子(是这样吗: 从第一个字母:n-》s,然后就是第二个字母:u-》o )被两位理解成不同的意思了,不过我看你们的代码,你们对这个字符串大小比较的算法的理解应该是一回事:) 我觉得可以这样用文字描述:设两个长度不一定相等的字符串s1和s2从左边开始字符一一对应,然后从左至右逐个从两个字符串从取一个字符来进行大小比较,如果相等,则向右移至下一组,如果依此顺序,有某一组字符不相等或一个字符串较短已无字符可取时,则相应字符较小或较短的字符串比另一个字符串小!如果出现两个字符串同时无字符可取的情况,则判断两字符串相等! 哈,说得反而很罗嗦了,哪位老兄帮助精简一下就好了:)
Dim a() As String
Dim i As Long
Dim b As String
ReDim a(0) As String
a(0) = "nuts"
Do Until a(i) = "soup"
DoEvents
b = a(i)
i = i + 1
ReDim Preserve a(i) As String
Mid$(b, 4, 1) = Chr(Asc(Mid$(b, 4, 1)) + 1)
If Mid$(b, 4, 1) > "z" Then
Mid$(b, 4, 1) = "a"
Mid$(b, 3, 1) = Chr(Asc(Mid$(b, 3, 1)) + 1)
If Mid$(b, 3, 1) > "z" Then
Mid$(b, 3, 1) = "a"
Mid$(b, 2, 1) = Chr(Asc(Mid$(b, 2, 1)) + 1)
If Mid$(b, 2, 1) > "z" Then
Mid$(b, 2, 1) = "a"
Mid$(b, 1, 1) = Chr(Asc(Mid$(b, 1, 1)) + 1)
End If
End If
End If
a(i) = b
Loop
For i = 0 To UBound(a)
DoEvents
Select Case a(i)
Case "nuts" To "soup"
Text1 = CStr(CLng(Text1) + 1)
End Select
Next iEnd Sub很多次啊!
MsgBox betweenthem("qhdfhdsfhsdfdsghdgg")
MsgBox betweenthem("vssffhdghhgf")
End Sub
Function betweenthem(ByVal temp As String) As Boolean
Select Case temp
Case "nuts" To "soup"
betweenthem = True
Case Else
betweenthem = False
End Select
End Function
两位老兄用不着争了,显然楼主这个理解起来模棱两可的句子(是这样吗: 从第一个字母:n-》s,然后就是第二个字母:u-》o
)被两位理解成不同的意思了,不过我看你们的代码,你们对这个字符串大小比较的算法的理解应该是一回事:)
我觉得可以这样用文字描述:设两个长度不一定相等的字符串s1和s2从左边开始字符一一对应,然后从左至右逐个从两个字符串从取一个字符来进行大小比较,如果相等,则向右移至下一组,如果依此顺序,有某一组字符不相等或一个字符串较短已无字符可取时,则相应字符较小或较短的字符串比另一个字符串小!如果出现两个字符串同时无字符可取的情况,则判断两字符串相等!
哈,说得反而很罗嗦了,哪位老兄帮助精简一下就好了:)