delphi 取出一个字符在字符串出现的次数

如题所述

这个问题可大可小,首先在于所求的字符是否unicode表示,尤其是编码值否超过基本字符平面(如超过,则一个Char其实不能表示一个完整的字符,需采用UCS4Char才能确保一个字符用一个变量容纳),其次在于用delphi的哪个版本。

以下,按照复杂的理解,用delphi 2009或之后版本,它们是unicode化了的,其string类型是UTF-16LE编码格式。

function CharCountOfString( C : UCS4Char; S : string ) : Integer;
var
S4 : UCS4String; // 其实是个动态数组
i : Integer;
begin
Result := 0;
S4 := UnicodeStringToUCS4String( S );
for i := 0 to High( S4 ) do
if S4[i] = C then
Inc( Result );
end;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-08
function stringn(s1,s2:string):integer
begin
result:=0;
while pos(s1,s2)>=0 do
begin
s2:=copy(s2,pos(s1,s2)+1,9999); //假设s2最大长度为9999个字符
result:=result+1 ;
end;
end;本回答被提问者采纳
第2个回答  推荐于2018-05-13
function StrPosCount(subs:string;source:string):integer;
var
Str : string;
begin
Result := 0;
str := source;
while Pos(Subs,Str)<>0 do
begin
Delete(Str,Pos(Subs,Str),Length(Subs));
Inc(Result);
end;

end;本回答被网友采纳