Kennt sich jemand mit Delphi (Programmiersprache) aus?

...komplette Frage anzeigen

2 Antworten

function OccurrencesOfChar(const S: string; const C: char): integer;
var
   i: Integer;
begin
  result := 0;
  for i := 1 to Length(S) do
    if S[i] = C then
      inc(result);
end;

Mit dieser Funktion kannst du die Anzahl eines Chars in einem String zählen.

madara97 27.08.2015, 22:48

du hast aber result nicht definiert

0

Delphi ist bei mir schon etwas länger her, aber ich versuche es mal (in der Hoffnung, die Syntax hat sich weitesgehend nicht geändert):

var text: String;
buchstaben: array['a' .. 'z'] of Integer;
i: Integer;
begin
text:= LowerCase('Text');
ZeroMemory(@buchstaben, SizeOf(buchstaben));
for i := 1 to Length(text) do
Inc(buchstaben[text[i]]];
end;

Im Array buchstaben hast du nun die Häufigkeiten zu jedem einzelnen Buchstaben.

madara97 27.08.2015, 22:53

was ist zeromemory

0
Schar 27.08.2015, 22:56
@madara97

Alle Einträge im Array buchstaben werden auf 0 gesetzt, das macht ZeroMemory.

0
madara97 27.08.2015, 22:57
@Schar

bei mir steht dass zeromemory nicht definiert wurde also delphi kann es nicht identifizieren

0
Schar 27.08.2015, 23:02
@madara97

Oh okay, dann versuch es mal so:

var text: String;
buchstaben: array['a' .. 'z'] of Integer;
i: Integer;
buchstabe: Char;
begin
text:= LowerCase('Text');

for buchstabe := low(buchstaben) to high(buchstaben) do
buchstaben[buchstabe] := 0;
for i := 1 to Length(text) do
Inc(buchstaben[text[i]]];
end;
0
madara97 27.08.2015, 23:11
@Schar

funktionniert, aber muss ich auch nicht so n text eingeben?

0
Schar 27.08.2015, 23:16
@madara97

Alternativ kannst du das ganze auch in eine Funktion packen und dieser einen variablen Text übergeben (z.B. Konsoleneingabe).

0
madara97 27.08.2015, 23:18
@Schar

und wie geht das? sorry bin echt ne niete in info

0
Schar 27.08.2015, 23:28
@madara97

Hier die Version, die eine Eingabe im der Konsole erfordert und die eingegebenen Buchstaben zählt:

var text: String;
buchstaben: array['a' .. 'z'] of Integer;
i: Integer;
begin
Readln(text);
text := LowerCase(text);
ZeroMemory(@buchstaben, SizeOf(buchstaben));
for i := 1 to Length(text) do
Inc(buchstaben[text[i]]];
end;
0

Was möchtest Du wissen?