Return the leftmost (if back
is either absent or equals false, otherwise the rightmost) character of string that is not
in set
. If all characters of string
are found in set
, the result is zero.
type(string) :: string1
type(string) :: string2
logical :: test_passed(2)
string1 = 'Hello World Hello!'
string2 = 'llo'
test_passed(1) = string1%verify(set=string2)==verify(string='Hello World Hello!', set='llo')
test_passed(2) = string1%verify(set=string2, back=.true.)==verify(string='Hello World Hello!', set='llo', back=.true.)
print '(L1)', all(test_passed)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(string), | intent(in) | :: | self |
The string. |
||
type(string), | intent(in) | :: | set |
Searched set. |
||
logical, | intent(in), | optional | :: | back |
Start of the last occurrence rather than the first. |
Result of the search.
elemental function sverify_string_string(self, set, back) result(i)
!< Return the leftmost (if `back` is either absent or equals false, otherwise the rightmost) character of string that is not
!< in `set`. If all characters of `string` are found in `set`, the result is zero.
!<
!<```fortran
!< type(string) :: string1
!< type(string) :: string2
!< logical :: test_passed(2)
!< string1 = 'Hello World Hello!'
!< string2 = 'llo'
!< test_passed(1) = string1%verify(set=string2)==verify(string='Hello World Hello!', set='llo')
!< test_passed(2) = string1%verify(set=string2, back=.true.)==verify(string='Hello World Hello!', set='llo', back=.true.)
!< print '(L1)', all(test_passed)
!<```
!=> T <<<
class(string), intent(in) :: self !< The string.
type(string), intent(in) :: set !< Searched set.
logical, intent(in), optional :: back !< Start of the last occurrence rather than the first.
integer :: i !< Result of the search.
if (allocated(self%raw).and.allocated(set%raw)) then
i = verify(string=self%raw, set=set%raw, back=back)
else
i = 0
endif
endfunction sverify_string_string