vb 关于字符重复个数比较问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:50:49
如dd=345
cc=5678
求f=? f=(dd当中有几个和cc重复的)
如上例f=1,因为就有1个5重复
又如dd=555
cc=5678
那么f应该等于3,3个5重复了
能否写成类似于这样的 ,下面代码是重复数字的和
Function fr(ByVal v As Long) As Long
Dim l As Long
While v > 0
l = v Mod 10
v = v \ 10
Select Case l
Case 1, 4, 7,0,8
fr = fr + l
End Select
Wend
End Function
如现在是h=578,等于上面问题的dd
然后,我在其他地方调用的时候可以直接用f=fr(h),这个f就是重复次数,这个比较会用很多次的,总不能用一次写一次啊,那样太麻烦,所以还是单独写一个像上面那个重复数字和的那样通用的比较好,然后在其他地方直接调用就可以了
Private Sub Command1_Click()
a = 345
b = 55678
For i = 1 To 3
For j = 1 To 4
If Mid(a, i, 1) = Mid(b, j, 1) Then x = x + 1
Next j
Next i
Print x
End Sub
这个不是我要的,我要的是通用的,将来可以f=fr(s)或f=fr(d),这样每次变换括号里的变量就可以了,这个该怎么写
Private Sub s(ByVal a As Long, ByVal b As Long)
For i = 1 To 3
For j = 1 To 4
If Mid(a, i, 1) = Mid(b, j, 1) Then x = x + 1
Next j
Next i
Print x
End Su

Private Sub s(ByVal a As String, ByVal b As String)
Dim x As Integer
For i = 1 To Len(a)
For j = 1 To Len(b)
If Mid(a, i, 1) = Mid(b, j, 1) Then x = x + 1
Next j
Next i
Print x
End Sub

Private Sub Command1_Click()
Dim z As String, y As String
z = "000000"
y = "0123"
s z, y
End Sub

你再试试