【问题标题】:Looping over characters in Fortran在 Fortran 中循环字符
【发布时间】:2017-11-30 20:23:59
【问题描述】:

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

DO p=a,b,c,t,r
  ...
END DO

每当写入 p 时将替换 a b c t 和 r。

【问题讨论】:

  • 好的,谢谢。我完全理解你的立场。我觉得如果其他人遇到同样的问题,之前的标题“循环字符”在网络上是完全无法搜索的。

标签: loops fortran


【解决方案1】:

循环索引始终是一个标量整数。幸运的是,使用所需的“迭代”对象数组是一件足够简单的事情:

character, parameter :: ps(*) = ['a', 'b', 'c', 't', 'r']
integer i
character p

do i=1, SIZE(ps)
  p = ps(i)
  ...
end do

这个成语不仅仅适用于字符。

【讨论】:

    【解决方案2】:

    或者,如果 string OP 表示长度为 n 的字符变量,则可能有类似

    character(len=n) :: string
    ...
    string = 'abcdef'
    ...
    do i = 1,n
       write(*,*) string(i:i)
    end do
    

    注意,对于任意长度的子字符串(包括1),必须提供开始和结束索引

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2014-02-25
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多