Count occurrences of a substring: Difference between revisions
Content added Content deleted
m (→{{header|Tcl}}: fix blurb text) |
|||
Line 8: | Line 8: | ||
print countSubstring("ababababab","abab") |
print countSubstring("ababababab","abab") |
||
2</lang> |
2</lang> |
||
=={{header|ALGOL 68}}== |
|||
{{works with|ALGOL 68|Revision 1 - no extensions to language used.}} |
|||
{{works with|ALGOL 68G|Any - tested with release [http://sourceforge.net/projects/algol68/files/algol68g/algol68g-1.18.0/algol68g-1.18.0-9h.tiny.el5.centos.fc11.i386.rpm/download 1.18.0-9h.tiny].}} |
|||
{{wont work with|ELLA ALGOL 68|Any (with appropriate job cards) - tested with release [http://sourceforge.net/projects/algol68/files/algol68toc/algol68toc-1.8.8d/algol68toc-1.8-8d.fc9.i386.rpm/download 1.8-8d] - due to extensive use of '''format'''[ted] ''transput''.}} |
|||
Algol68 has no build in function to do this task, hence the next to create a ''count string in string'' routine. |
|||
<lang algol68>#!/usr/local/bin/a68g --script # |
|||
PROC count string in string = (STRING needle, haystack)INT: ( |
|||
INT start:=LWB haystack, next, out:=0; |
|||
FOR count WHILE string in string(needle, next, haystack[start:]) DO |
|||
start+:=next+UPB needle-LWB needle; |
|||
out:=count |
|||
OD; |
|||
out |
|||
); |
|||
printf(($d" "$, |
|||
count string in string("aa", "aaaaaaa"), # expect 3 # |
|||
count string in string("th", "the three truths"), # expect 3 # |
|||
count string in string("abab", "ababababab"), # expect 2 # |
|||
count string in string("a*b","abaabba*bbaba*bbab"), # expect 2 # |
|||
$l$ |
|||
))</lang> |
|||
Output: |
|||
<pre> |
|||
3 3 2 2 |
|||
</pre> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |