Telle forekomster i et string

En funksjon som returnerer antall ganger en substring skjer i en streng. Det er også en ANSI versjon Telle forekomster i en streng
Følgende funksjoner returnere antall forekomster av en røye eller en delstreng i en streng eller ANSI streng: grensesnittfunksjon inntreffer (konst str: string; c:. Char ): integer; overbelastning; funksjon Forekommer (konst str: string; const substr: string): integer; overbelastning; funksjons AnsiOccurs (konst str: string; konst substr: string): heltall; implementering bruker sysutils; funksjon Forekommer (konst str: string; c: char): integer; //Returnerer antall ganger en karakter oppstår i en streng Var p: PChar; begynner Resultat: = 0; p: = PChar (Pointer (str)); mens p < > nil gjør begynne p: = StrScan (p, c); hvis p < > nil deretter begynne inc (Resultat); inc (p); slutt; slutt; slutt; funksjon Forekommer (konst str: string; const substr: string): integer; //Returnerer antall ganger en substring oppstår i en streng Var p, q: PChar; n: integer; begynner Resultat: = 0; n: = Lengde (substr); hvis n = 0 og avslutter; q: = PChar (Pointer (substr)); p: = PChar (Pointer (str)); mens p < > nil gjør begynne p: = strpos (p, q); hvis p < > nil deretter begynne inc (Resultat); inc (p, n); slutt; slutt; slutt; funksjons AnsiOccurs (konst str: string; konst substr: string): heltall; //Returnerer antall ganger en substring oppstår i en streng //ANSI versjon Var p, q: PChar; n: integer; begynner Resultat: = 0; n: = Lengde (substr); hvis n = 0 og avslutter; q: = PChar (Pointer (substr)); p: = PChar (Pointer (str)); mens p < > nil gjør begynne p: = AnsiStrPos (p, q); hvis p < > nil deretter begynne inc (Resultat); inc (p, n); slutt; slutt; end;