循环中的一个问题,不是太明白。。。
Case "nuts" To "soup"
请问:按英文字母顺序落入从 nuts 到 soup 之间的字符串,这些字符串是怎么个顺序
排的呢?是这样吗: 从第一个字母:n-》s,然后就是第二个字母:u-》o。。。
问题点数:100、回复次数:12Top
1 楼danielinbiti(金)回复于 2003-09-03 22:47:18 得分 0
对,逐位比较Top
2 楼northwolves(狼行天下)回复于 2003-09-03 23:08:25 得分 0
否,Case "nuts" To "soup"为在字典中可以排列在该两词之间的所有字母组合,如:“oad”,“sip”等
Top
3 楼Gelim(Gelim)回复于 2003-09-03 23:21:39 得分 0
楼上的错了!我实践证明楼主说得没错!请看程序!Top
4 楼Gelim(Gelim)回复于 2003-09-03 23:47:23 得分 30
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 i
End Sub
很多次啊!Top
5 楼Gelim(Gelim)回复于 2003-09-03 23:47:44 得分 0
83848次Top
6 楼northwolves(狼行天下)回复于 2003-09-04 00:14:26 得分 30
兄弟试试下面代码:
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 FunctionTop
7 楼Gelim(Gelim)回复于 2003-09-04 00:36:20 得分 20
to northwolves(野性的呼唤):
没错啊!你的程序也证明了楼主的话是对的啊!
你的程序在执行时第一个显示true,第二个是false
因为第一个送进去字符串的第一个字母是"q",他大于"n",小于"s",所以显示TRUE
而第二个正好相反,所以显示FALSE
比较的时候,他不会管你有多少个字符的!
Top
8 楼hxy1982(农夫三拳有点甜)回复于 2003-09-06 22:24:39 得分 0
呵呵~!Top
9 楼figoren(figoren)回复于 2003-09-06 23:11:54 得分 0
就是逐个字符比较 遇到第一个不相同字符时 就可以判断是否在2个字符之间Top
10 楼bcrun(网狐(www.devsos.com))回复于 2003-09-07 00:11:34 得分 20
to northwolves(野性的呼唤) and Gelim(Gelim) :
两位老兄用不着争了,显然楼主这个理解起来模棱两可的句子(是这样吗: 从第一个字母:n-》s,然后就是第二个字母:u-》o。。。
)被两位理解成不同的意思了,不过我看你们的代码,你们对这个字符串大小比较的算法的理解应该是一回事:)
我觉得可以这样用文字描述:设两个长度不一定相等的字符串s1和s2从左边开始字符一一对应,然后从左至右逐个从两个字符串从取一个字符来进行大小比较,如果相等,则向右移至下一组,如果依此顺序,有某一组字符不相等或一个字符串较短已无字符可取时,则相应字符较小或较短的字符串比另一个字符串小!如果出现两个字符串同时无字符可取的情况,则判断两字符串相等!
哈,说得反而很罗嗦了,哪位老兄帮助精简一下就好了:)Top
11 楼pigpag(Pigpag - A GRE Fighter)回复于 2003-09-07 02:08:06 得分 0
插值检查:判断A是否介于BC之间:(A-B)(A-C)<0Top




