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

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

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

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

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

textual
Листинг программы
  1. Private Declare Function GetTickCount Lib "kernel32" () As Long
  2.  
  3. Function hM0(Txt As String, sym As String) As Long
  4.     p& = 1
  5.     Do
  6.         p& = InStr(p&, Txt, sym)
  7.         If p& = 0 Then Exit Do
  8.         p& = p& + 1
  9.         hM0 = hM0 + 1
  10.    Loop
  11. End Function
  12.  
  13. Function hM1(Txt As String, sym As String) As Long
  14.      For i& = 1 To Len(Txt)
  15.          If Mid$(Txt, i&, 1) = sym Then hM1 = hM1 + 1
  16.      Next i&
  17. End Function
  18.  
  19. Function hM2(Txt As String, sym As String) As Long
  20.         hM2 = UBound(Split(Txt, sym))
  21. End Function
  22.  
  23. Function hM3(Txt As String, sym As String) As Long
  24.          hM3 = Len(Txt) - Len(Replace$(Txt, sym, ""))
  25. End Function
  26.  
  27. Function hM4(Txt As String, sym As String) As Long
  28.          hM4 = (Len(Txt) - Len(Replace$(Txt, sym, ""))) / Len(sym)
  29. End Function
  30.  
  31. Sub Test()
  32.  
  33.     BigBuf$ = ""
  34.    
  35.     For j% = 1 To 255
  36.         BigBuf$ = BigBuf$ + Chr$(j%)
  37.     Next j%
  38.    
  39.     For i% = 1 To 5
  40.         BigBuf$ = BigBuf$ + BigBuf$
  41.     Next i%
  42.    
  43.    
  44.     Stt& = GetTickCount
  45.     For i% = 1 To 10000
  46.         k& = hM0(BigBuf$, "*")
  47.     Next i%
  48.     Stp& = GetTickCount
  49.     Debug.Print "INSTR: "; Stp& - Stt&
  50.    
  51.     ' Исключен из теста за очевидной медленностью...
  52.    
  53.     'Stt& = GetTickCount
  54.    'For i% = 1 To 10000
  55.    '    k& = hM1(BigBuf$, "*")
  56.    'Next i%
  57.    'Stp& = GetTickCount
  58.    'Debug.Print "FOR: "; Stp& - Stt&
  59.    
  60.    
  61.     Stt& = GetTickCount
  62.     For i% = 1 To 10000
  63.         k& = hM2(BigBuf$, "*")
  64.     Next i%
  65.     Stp& = GetTickCount
  66.     Debug.Print "SPLIT: "; Stp& - Stt&
  67.    
  68.     Stt& = GetTickCount
  69.     For i% = 1 To 10000
  70.         k& = hM3(BigBuf$, "*")
  71.     Next i%
  72.     Stp& = GetTickCount
  73.     Debug.Print "Replace$: "; Stp& - Stt&
  74.    
  75.    
  76.     Stt& = GetTickCount
  77.     For i% = 1 To 10000
  78.         k& = hM4(BigBuf$, "*")
  79.     Next i%
  80.     Stp& = GetTickCount
  81.     Debug.Print "Replace$ / Len: "; Stp& - Stt&
  82.  
  83. End Sub

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


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

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

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы