我有一个带有db记录选项的字符串,例如:
str = "-t Maintainer -e Name = Luca"
如何分隔记录选项字符串,以便我有两个数组,如下所示。我希望这适用于使用-key value
或--key value
设置记录选项的任何设置。
key(i) = ["t", "e"]
val(i) = ["Maintainer", "Name = Luca"]
我还想根据条件将字符串拆分为单独的字符串。
答案 0 :(得分:1)
Fortran有一个名为index
的函数,它给出给定字符串中第一个或最后一个子字符串出现的开头索引。您可以使用该函数获得所需内容,下面是从上次出现时提取的示例。
这是一个起点:
program test
implicit none
character(*), parameter :: str = "-t Maintainer -e Name = Luca"
integer pos1, pos2
pos2 = index(str, '-', .true.)
print*, "key2 = ", str(pos2+1:pos2+1)
print*, "val2 = ", adjustl( str(pos2+2:) )
pos1 = index(str(:pos2-1), '-', .true.)
print*, "key1 = ", str(pos1+1:pos1+1)
print*, "val1 = ", adjustl( str(pos1+2:pos2-1) )
end
输出
key2 = e
val2 = Name = Luca
key1 = t
val1 = Maintainer
您可以适应您的需求