Определить, сколько раз в предложении встречается данный символ - VB

Узнай цену своей работы

Формулировка задачи:

дан текст. сколько раз в нем встречается символ"+" и сколько раз символ "*" какая команда используется? и как(( INSTR?

Решение задачи: «Определить, сколько раз в предложении встречается данный символ»

textual
Листинг программы
Private Declare Function GetTickCount Lib "kernel32" () As Long
 
Function hM0(Txt As String, sym As String) As Long
    p& = 1
    Do
        p& = InStr(p&, Txt, sym)
        If p& = 0 Then Exit Do
        p& = p& + 1
        hM0 = hM0 + 1
   Loop
End Function
 
Function hM1(Txt As String, sym As String) As Long
     For i& = 1 To Len(Txt)
         If Mid$(Txt, i&, 1) = sym Then hM1 = hM1 + 1
     Next i&
End Function
 
Function hM2(Txt As String, sym As String) As Long
        hM2 = UBound(Split(Txt, sym))
End Function
 
Function hM3(Txt As String, sym As String) As Long
         hM3 = Len(Txt) - Len(Replace$(Txt, sym, ""))
End Function
 
Function hM4(Txt As String, sym As String) As Long
         hM4 = (Len(Txt) - Len(Replace$(Txt, sym, ""))) / Len(sym)
End Function
 
Sub Test()
 
    BigBuf$ = ""
    
    For j% = 1 To 255
        BigBuf$ = BigBuf$ + Chr$(j%)
    Next j%
    
    For i% = 1 To 5
        BigBuf$ = BigBuf$ + BigBuf$
    Next i%
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM0(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "INSTR: "; Stp& - Stt&
    
    ' Исключен из теста за очевидной медленностью...
    
    'Stt& = GetTickCount
    'For i% = 1 To 10000
    '    k& = hM1(BigBuf$, "*")
    'Next i%
    'Stp& = GetTickCount
    'Debug.Print "FOR: "; Stp& - Stt&
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM2(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "SPLIT: "; Stp& - Stt&
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM3(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "Replace$: "; Stp& - Stt&
    
    
    Stt& = GetTickCount
    For i% = 1 To 10000
        k& = hM4(BigBuf$, "*")
    Next i%
    Stp& = GetTickCount
    Debug.Print "Replace$ / Len: "; Stp& - Stt&
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы