首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算在Fortran90中派生类型中定义的字符串的特定字母

计算在Fortran90中派生类型中定义的字符串的特定字母
EN

Stack Overflow用户
提问于 2019-09-12 00:11:24
回答 1查看 67关注 0票数 0

我想评估变量myline的第三个字母是否是'C'

我试试看:

代码语言:javascript
复制
program main

    implicit none

    type line
        integer                     :: count    = 5
        character(len=48)           :: list     = 'ABCDE'
    end type

    type(line)                      :: myline
    character(len=1)                :: letter   = 'C'

    write(*,*) myline%count, myline%list

    if(myline%list(3) == letter) then
        write(*,*) 'TRUE'
    else
        write(*,*) 'FALSE'
    end if

end program

但我明白:

代码语言:javascript
复制
$ /usr/local/bin/gfortran8 -mcmodel=medium -fcheck=all -Wl,-rpath=/usr/local/lib/gcc8 -o test test.f90
test.f90:15:15:

  if(myline%list(3) == letter) then
               1
Error: Syntax error in IF-expression at (1)
test.f90:17:5:

  else
     1
Error: Unexpected ELSE statement at (1)
test.f90:19:4:

  end if
    1
Error: Expecting END PROGRAM statement at (1)

我正在使用gfortran (gcc8)和Fortran 90标准。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 00:33:33

在Fortran中,字符子字符串引用总是需要一个开始和结束位置。所以你想要的是myline%list(3:3)

您可以省略结束位置(保留冒号),例如(3:),这意味着字符串的其余部分。同样,您可以省略起始位置,这意味着从第一个字符(:3)

作为一种建议,letter最好使用parameter属性声明,因为它是一个常量,但是您拥有的内容将起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57898173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档