在Fortran中循环使用字符

时间:2017-11-30 20:23:59

标签: loops fortran

我想知道是否可以在Fortran中循环遍历字符串。例如,我想知道以下代码:

DO p=a,b,c,t,r
  ...
END DO
只要写入p,

就会替换b c t和r。

2 个答案:

答案 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)都必须提供开始和结束索引