Count occurrences of a substring: Difference between revisions
Content deleted Content added
m →{{header|Ruby}}: Stop using Array#count, because it needs Ruby 1.8.7. |
added ocaml |
||
Line 369: | Line 369: | ||
<pre>3 |
<pre>3 |
||
2</pre> |
2</pre> |
||
=={{header|OCaml}}== |
|||
<lang ocaml>let count_substring str sub = |
|||
let sub_len = String.length sub in |
|||
let len_diff = (String.length str) - sub_len |
|||
and reg = Str.regexp_string sub in |
|||
let rec aux i n = |
|||
if i > len_diff then n else |
|||
try |
|||
let pos = Str.search_forward reg str i in |
|||
aux (pos + sub_len) (succ n) |
|||
with Not_found -> n |
|||
in |
|||
aux 0 0 |
|||
let () = |
|||
Printf.printf "count 1: %d\n" (count_substring "the three truth" "th"); |
|||
Printf.printf "count 2: %d\n" (count_substring "ababababab" "abab"); |
|||
;;</lang> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
Line 381: | Line 401: | ||
print countSubstring("the three truths","th"), "\n"; # prints "3" |
print countSubstring("the three truths","th"), "\n"; # prints "3" |
||
print countSubstring("ababababab","abab"), "\n"; # prints "2"</lang> |
print countSubstring("ababababab","abab"), "\n"; # prints "2"</lang> |
||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |
||
<lang perl6>sub count-substring($big,$little) { +$big.comb: /$little/ } |
<lang perl6>sub count-substring($big,$little) { +$big.comb: /$little/ } |