Определить, сколько раз в предложении встречается данный символ - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д