Entwickler-Ecke

Sonstiges (Delphi) - Häufigkeit der Buchstaben von einem String


bluecat - Mi 22.06.05 11:10
Titel: Häufigkeit der Buchstaben von einem String
Hallo Leute!
ich möchte verschiendenen Buchstaben in einem String zählen und danach zurückgeben, weiss aber nicht wie ich machen kann.Wie lautet der Code? Kann jemand mir helfen? Danke!
Bsp: "wetrwetw"
rückgabe: w:=3 ,t:=2, r:=1


alzaimar - Mi 22.06.05 11:43

Die Rückgabe is ein Array [Char] Of Integer. Dort steht für jedes Zeichen, wie oft es in dem String vorgekommen ist.
Hier ist der Prozedurkopf:

Delphi-Quelltext
1:
2:
Type TCharOfInt = Array [Char] Of Integer;
Procedure CountCharacters (Const aString : StringVar aResults : TCharOfInt);

Den Rest schaffst Du doch, oder?


bluecat - Mi 22.06.05 11:56

ich kann leider nicht vorstellen?bin vielleich zu blöd,kannst du mir bitte den code posten! danke


jasocul - Mi 22.06.05 12:10

Ergebnis [http://www.delphi-forum.de/viewtopic.php?t=42129&highlight=buchstaben], wenn man im Forum nach Buchstaben sucht.
Ich vermute, dass das dein Problem löst.


bluecat - Mi 22.06.05 12:20

danke für den hinweis, ich möchte aber Einzelbuchstaben zählen.


jasocul - Mi 22.06.05 12:27

Ich weiß ja nicht, wieviel Programmiererfahrung du hast, aber wenn du meinen Beispiel-Source nimmst (im oben verlinkten Topic), sollte es mit ein paar kleinen Abwandlungen recht schnell funktionieren.

Statt der Buchstabengruppen nimmst du ein Array der Länge 40 (Alle Buchstaben und Zahlen, wenn ich mich nicht verzählt habe) vom Typ Integer.
Dann kannst du über eine Case-Struktur jedes Zeichen prüfen und eintragen. Das ist die Anfänger-Variante.
Die Profi-Variante kann man über den ASCII-Wert des Buchstaben noch einiges verbessern.


BenBE - Mi 22.06.05 12:31

Das Denken kann Die dieses Forum leider nicht abnehmen ...

Type-Deklaration von user profile iconalzaimar nehmen und

Delphi-Quelltext
1:
2:
For X:= 1 To Length(Input) Do
    Inc(Result[Input[X]]);
nehmen ...

Geht übrigens auch als Function:

Delphi-Quelltext
1:
function CountCharacters (Const Input : String): TCharOfInt;                    

Wird aber intern genauo gehandlet wie user profile iconalzaimars Aufruf.
That's it ...