Count the number of occurences of a substring into a string.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | string_ | String. |
||
| character(len=*), | intent(in) | :: | substring | Substring. |
Number of occurrences.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module.
elemental function count_substring(string_, substring) result(No)
!---------------------------------------------------------------------------------------------------------------------------------
!< Count the number of occurences of a substring into a string.
!---------------------------------------------------------------------------------------------------------------------------------
character(*), intent(in) :: string_ !< 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(string_)) return
c1 = 1
do
c2 = index(string=string_(c1:), substring=substring)
if (c2==0) return
No = No + 1
c1 = c1 + c2 + len(substring)
enddo
return
!---------------------------------------------------------------------------------------------------------------------------------
endfunction count_substring