Count the number of occurences of a substring into a string.
print "(L1)", count('hello', substring='ll')==1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | s |
String. |
||
character(len=*), | intent(in) | :: | substring |
Substring. |
Number of occurrences.
elemental function count_substring(s, substring) result(No)
!< Count the number of occurences of a substring into a string.
!<
!<```fortran
!< print "(L1)", count('hello', substring='ll')==1
!<```
!=> T <<<
character(*), intent(in) :: s !< String.
character(*), intent(in) :: substring !< Substring.
integer(I4P) :: No !< Number of occurrences.
integer(I4P) :: c1 !< Counters.
integer(I4P) :: c2 !< Counters.
No = 0
if (len(substring) > len(s)) return
c1 = 1
do
c2 = index(string=s(c1:), substring=substring)
if (c2==0) return
No = No + 1
c1 = c1 + c2 + len(substring)
enddo
endfunction count_substring