Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zählen, wie oft ein Zeichen in einem String vorkommt
antonc - Do 08.02.07 18:34
Titel: Zählen, wie oft ein Zeichen in einem String vorkommt
Hallo,
wie kann ich zählen wie oft ein string ein bestimmtes Zeichen enthält?
MFG Anton
Chryzler - Do 08.02.07 18:38
Du gehst jedes Zeichen im String einzeln durch, am besten mit einer For-Schleife, und zählst dann die Anzahl des bestimmten Zeichens.
F34r0fTh3D4rk - Do 08.02.07 20:54
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var anzahlen: array [0..255] of integer; astr: string; i: integer; begin for i := 1 to length(astr) do anzahlen[ord(astr[i])] := anzahlen[chr(astr[i])] + 1; end; |
ungetestet, aber sollte
laufen, dann kannst du das so ausgeben (memo1 vorrausgesetzt):
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var i: integer; begin for i := 0 to 255 do memo1.lines.add('Das Zeichen ' + chr(i) + ' kommt ' + inttostr(anzahlen[i]) + ' mal vor'; end; |
natürlich sind da auch viele nicht druckbare zeichen dabei, aber ich denke die bekommst du noch gefiltert, ist ja nur der grundansatz ;)
wenns nur um ein bestimmtes zeichen geht, reicht eine if abfrage:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var i: integer; astr: string; count: integer; begin for i := 1 to length(astr) do if astr[i] = 'a' then inc(count); end; |
Chryzler - Do 08.02.07 21:21
F34r0fTh3D4rk hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var i: integer; astr: string; count: integer; begin for i := 1 to length(astr) do if astr[i] = 'a' then inc(count); end; | |
Also, ich würde die count-Variable vor der Schleife noch auf Null setzen...
JayEff - Do 08.02.07 21:33
Chryzler hat folgendes geschrieben: |
Also, ich würde die count-Variable vor der Schleife noch auf Null setzen... |
Integervariablen werden immer mit 0 initialisiert, darum meckert auch der compiler nicht "[Warnung] blah könnte nicht initialisiert sein blah".
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!