Vorkommen einer Anzahl von gleichen Zeichen in String testen



  • Hallo,
    ich habe eine nullterminierte Zeichenkette, Länge 450 Zeichen. Diese wird mit beliebigen Buchstaben gefüllt. Ich will nun wissen, ob das Zeichen "z" 5-mal darin vorkommt. Ohne Hilfe einer Bibliothek.

    Ich würde jetzt so vorgehen: Ich durchsuche von links nach rechts die Kette nach dem ersten Vorkommen eines "z". Dann merke ich mir mit einem Zähler, dass das das erste "z" ist. Wandere dann nach rechts ein Zeichen weiter und überprüfe, ob es auch ein "z" ist. Wenn ja, erhöht sich der Zähler auf 2, ansonsten setze ich den Zähler zurück und ich beginne an der Stelle mit einem neuen Test.

    Hat dazu jemand einen Verbesserungsvorschlag bzw. einen schnellen Algo?

    Danke.



  • man da noch einfacher machen???????????????????????? 👍 🙂

    Du musst zaehlen oder willst erst ueberpruefen ob sich nach einer statistischen Häufigkeit ueberhaupt lohnt einen bestimmten Index ueberhaupt
    zu lesen ob sichs lohnt zu zählen :p

    Ich denke doch das hier das naheliegenste auch das effektivste ist wenn
    man bei solchen einfachen Sachen schon Haarspalterei betreibt wieveil Zeit will man dann fuer andere Ding aufbringen? Ne ne das zaehlen ist schon das beste in diesen Fall!!!

    mfg 🙂 😉



  • Du machst sicher Anspielungen wegen der 450 Zeichenanzahl
    man koennte dann höchstens wegen zu langer Wartezeit oder so
    diese Zaehlschleife in nen THREAD packen damit das Programm nicht blockiert
    was anderes fällt mir im Moment auch nicht ein aber wie gesagt
    wnn du nur Zeichen zählst und die Daten sind von der Information variabel
    (immer andere Zeichen) mussde immer noch zählen solange man ein Array verwendet
    wenn de die Zeich jedoch nach einen Kriterium in nem Baum sammelst
    was weiss ich alle Konsonanten im linken Aussenzweig alle Vokale im rechten
    und noch komprimieren tust kann man da mehr machen.
    aber wenn de alles beim Array lässt kannste nur zaehlen! und das Zeichen für Zeichen

    mfg 🙂



  • Du könntest evtl. den String vorher mit qsort sortieren, dann liegen alle identischen Zeichen dicht beieinander. Aber sonst kann man da nicht viel machen.

    Gruß Tobias


Anmelden zum Antworten