我想知道是否可以在Fortran中循环遍历字符串。例如,我想知道以下代码:
DO p=a,b,c,t,r
...
END DO
只要写入p,就会替换b c t和r。
答案 0 :(得分:3)
循环索引始终是标量整数。幸运的是,使用所需“迭代”对象的数组是一件非常简单的事情:
character, parameter :: ps(*) = ['a', 'b', 'c', 't', 'r']
integer i
character p
do i=1, SIZE(ps)
p = ps(i)
...
end do
这个成语不仅仅适用于角色。
答案 1 :(得分:0)
或者,如果通过 string OP表示长度为n
的字符变量,可能会有类似
character(len=n) :: string
...
string = 'abcdef'
...
do i = 1,n
write(*,*) string(i:i)
end do
注意到获取任何长度的子串(包括1
)都必须提供开始和结束索引