Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(string), | intent(in) | :: | self | |||
character(kind=CK, len=*), | intent(in), | optional | :: | sep |
elemental function startcase(self, sep) !< Return a string with all words capitalized, e.g. title case. !< !< @note Multiple subsequent separators are collapsed to one occurence. !< !<```fortran !< type(string) :: astring !< logical :: test_passed(1) !< astring = 'the Quick Brown fox Jumps over the Lazy Dog.' !< test_passed(1) = astring%startcase()//''=='The Quick Brown Fox Jumps Over The Lazy Dog.' !< print '(L1)', all(test_passed) !<``` !=> T <<< class(string), intent(in) :: self !< The string. character(kind=CK, len=*), intent(in), optional :: sep !< Separator. type(string) :: startcase !< Start case string. character(kind=CK, len=:), allocatable :: sep_ !< Separator, default value. type(string), allocatable :: tokens(:) !< String tokens. if (allocated(self%raw)) then sep_ = SPACE ; if (present(sep)) sep_ = sep call self%split(tokens=tokens, sep=sep_) tokens = tokens%capitalize() startcase = startcase%join(array=tokens, sep=sep_) endif endfunction startcase