Nur so zum Spaß noch eine Version, die auch mit
PChar arbeitet, aber trotzdem #0 Zeichen im String zulässt.
(Kann sein, daß die Pointer-Arithmetik in älteren Versionen noch nicht funktioniert. Dann die auskommentierte Variante verwenden.)
Delphi-Quellcode:
function CharCount(const S: string; C: Char): Cardinal;
var
P, PEnd: PChar;
begin
Result := 0;
P := PChar(S);
PEnd := P + Length(S));
// PEnd := P;
// Inc(PEnd, Length(S));
while P < PEnd do begin
while P^ <> C do begin
Inc(P);
if P = PEnd then Exit;
end;
Inc(Result);
Inc(P);
end;
end;