count_chars (PHP)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • count_chars (PHP)

      Ich wollte mich mal an "count_chars()" von PHP versuchen und war erstaunt, wie einfach man das nachbilden kann.


      Quellcode

      1. /* aus PHP:
      2. mixed count_chars ( string $string [, int $mode = 0 ] )
      3. Zählt die Häufigkeit des Vorkommens jedes einzelnen Byte-Wertes (0..255) in string und gibt sie auf verschiedene Arten zurück.
      4. Abhängig von mode gibt count_chars() eine der folgenden Möglichkeiten zurück:
      5. 0 - ein Array mit den Byte-Werten als Schlüssel und deren jeweiliger Häufigkeit als Wert.
      6. 1 - wie 0, allerdings werden nur Byte-Werte ausgegeben, die mindestens einmal vorkommen.
      7. 2 - wie 0, allerdings werden nur Byte-Werte, die nicht vorkommen, aufgelistet.
      8. 3 - eine Zeichenkette, die alle vorkommenden Zeichen enthält.
      9. 4 - eine Zeichenkette, die alle nicht vorkommenden Zeichen enthält.
      10. */
      11. Proc php_count_chars
      12. Parameters string S, int mode
      13. Declare int i, a[255], hash H[]
      14. Clear a[]
      15. WhileLoop 1,Len(S) : i = Ord(Mid$(S,&loop,1)) : a[i] = a[i] + 1 : EndWhile
      16. Select mode
      17. CaseOf 0
      18. WhileLoop 1, 255
      19. H[&loop] = Str$( a[&loop] )
      20. EndWhile
      21. Return H[]
      22. CaseOf 1
      23. WhileLoop 1, 255
      24. Case a[&loop] : H[&loop] = Str$( a[&loop] )
      25. EndWhile
      26. Return H[]
      27. CaseOf 2
      28. WhileLoop 1, 255
      29. CaseNot a[&loop] : H[&loop] = Str$( a[&loop] )
      30. EndWhile
      31. Return H[]
      32. CaseOf 3
      33. Clear S
      34. WhileLoop 1, 255
      35. Case a[&loop] : S = S + Chr$(&loop)
      36. EndWhile
      37. Return S
      38. CaseOf 4
      39. Clear S
      40. WhileLoop 1, 255
      41. CaseNot a[&loop] : S = S + Chr$(&loop)
      42. EndWhile
      43. Return S
      44. Otherwise 'CaseOf 0
      45. WhileLoop 1, 255
      46. H[&loop] = Str$( a[&loop] )
      47. EndWhile
      48. Return H[]
      49. EndSelect
      50. EndProc
      51. cls
      52. Declare string a,b, S,S1,S2, hash H[]
      53. S = "Dies ist ein kleiner Teststring."
      54. S1 = "Holla, die Waldfee"
      55. ' ---
      56. Print "\n"; S
      57. S2 = php_count_chars(S,3)
      58. Print "alle vorkommenden Zeichen:", S2
      59. H[] = php_count_chars(S,1)
      60. ForEach H[],a,b
      61. Print " ",Chr$(Val(a))," - ",b,"mal"
      62. EndFor
      63. ' ---
      64. Print "\n"; S1
      65. S2 = php_count_chars(S1,3)
      66. Print "alle vorkommenden Zeichen:", S2
      67. H[] = php_count_chars(S1,1)
      68. ForEach H[],a,b
      69. Print " ",Chr$(Val(a))," - ",b,"mal"
      70. EndFor
      71. WaitEnd
      Alles anzeigen
      Ausgabe:
      Spoiler anzeigen

      -----------------------------------------------------
      Dies ist ein kleiner Teststring.
      alle vorkommenden Zeichen: .DTegiklnrst
      - 4 mal
      . - 1 mal
      D - 1 mal
      T - 1 mal
      e - 5 mal
      g - 1 mal
      i - 5 mal
      k - 1 mal
      l - 1 mal
      n - 3 mal
      r - 2 mal
      s - 4 mal
      t - 3 mal

      Holla, die Waldfee
      alle vorkommenden Zeichen: ,HWadefilo (first in last out?? in die Wade???)
      - 2 mal
      , - 1 mal
      H - 1 mal
      W - 1 mal
      a - 2 mal
      d - 2 mal
      e - 3 mal
      f - 1 mal
      i - 1 mal
      l - 3 mal
      o - 1 mal

      P.S.: ist'n bisserl geschönt - fällt gar nicht auf
      Programmieren, das spannendste Detektivspiel der Welt.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Michael Wodrich ()