FO
Нагенерить запятых.
Навставлять элементов между запятыми.
Проверить, что не было перекрытий привставке, посчитав число запятых.
Выполнить конвертацию
Size: a a a
FO
FO
c
FO
FO
c
c
FO
FO
FO
Dv
Dv
Dv
Dv
Dv
Dv
FO
FO
!*MODULE strings DECK index_ith
!> @brief This function return index of i'th substring in string
!> @details if ind is negative, backward search will be
!> result is equal 0 if search was failed
!> @author Igor S. Gerasimov
!> @date May, 2021 --Initial release--
!> @param substring - (in)
!> @param string - (in)
!> @param ith - (in) index of needed substring
integer function index_ith(substring, string, ith) result(res)
character(len=*), intent(in) :: substring, string
integer, intent(in) :: ith
! internal variables
character(len=:), allocatable :: tmp_string
integer :: i, diff
res = 0
tmp_string = string
if(ith .gt. 0) then
do i = 1, ith
diff = INDEX(tmp_string, substring)
res = res + diff
if(diff .eq. 0) exit
tmp_string = tmp_string(INDEX(tmp_string, substring) + 1:)
end do
else if(ith .lt. 0) then
do i = -1, ith, -1
res = INDEX(tmp_string, substring, back=.true.)
if(res .eq. 0) exit
tmp_string = tmp_string(:INDEX(tmp_string, substring, back=.true.) - 1)
end do
else
res = 0
end if
end function index_ith
Dv
FO