Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(string), | intent(in) | :: | self | |||
type(string), | intent(in) | :: | substring | |||
logical, | intent(in), | optional | :: | back |
elemental function sindex_string_string(self, substring, back) result(i)
!< Return the position of the start of the first occurrence of string `substring` as a substring in `string`, counting from one.
!< If `substring` is not present in `string`, zero is returned. If the back argument is present and true, the return value is
!< the start of the last occurrence rather than the first.
!<
!<```fortran
!< type(string) :: string1
!< type(string) :: string2
!< logical :: test_passed(2)
!< string1 = 'Hello World Hello!'
!< string2 = 'llo'
!< test_passed(1) = string1%index(substring=string2)==index(string='Hello World Hello!', substring='llo')
!< test_passed(2) = string1%index(substring=string2, back=.true.)==index(string='Hello World Hello!', substring='llo', &
!< back=.true.)
!< print '(L1)', all(test_passed)
!<```
!=> T <<<
class(string), intent(in) :: self !< The string.
type(string), intent(in) :: substring !< Searched substring.
logical, intent(in), optional :: back !< Start of the last occurrence rather than the first.
integer :: i !< Result of the search.
if (allocated(self%raw)) then
i = index(string=self%raw, substring=substring%raw, back=back)
else
i = 0
endif
endfunction sindex_string_string