Wenn die For-Schleife denn unbedingt vermieden werden soll, kann man es auch so machen:
Delphi-Quellcode:
function CharCount(const S: string; const C: Char): Integer;
var
N: Integer;
P: PChar;
begin
N := 0;
P := PChar(S[1]);
while P^ <> #0 do begin
if P^ = C then Inc(N);
Inc(P);
end;
Result := N;
end;
Der Code (und auch einige andere) bricht aber die Schleife ab, wenn S ein #0 enthält, zB S = '123'#0#1#2'123'. (Habe nicht den ganzen Thread gelesen, und weiß also nicht ob das verboten ist).