gpt4 book ai didi

string - Fortran 77 中的字符串数组

转载 作者:行者123 更新时间:2023-12-04 11:17:55 27 4
gpt4 key购买 nike

我有一个关于 Fortran 77 的问题,但我找不到解决方案。

我正在尝试存储定义如下的字符串数组:

character matname(255)*255

Wich 是一个由 255 个长度为 255 的字符串组成的数组。

后来我从文件中读取名称列表,并像这样设置数组的内容:
matname(matcount) = mname

编辑:其实 mname值被硬编码为 mname = 'AIR'类型 character*255 ,它是函数的参数 matadd()至多执行上一行。但这仅用于测试,将来会从文件中读取。

后来我想用以下方式打印它:
write(*,*) matname(matidx)

但它似乎打印了所有 255 个字符,它打印了我分配的字符串和很多垃圾。
  • 所以这就是我的问题,我怎么知道存储的字符串的长度?
  • 我应该有另一个具有所有长度的数组吗?
  • 我怎么知道读取的字符串的长度?

  • 谢谢。

    最佳答案

    你可以使用这个函数来获取长度(没有空尾)

    integer function strlen(st)
    integer i
    character st*(*)
    i = len(st)
    do while (st(i:i) .eq. ' ')
    i = i - 1
    enddo
    strlen = i
    return
    end

    从这里得到: http://www.ibiblio.org/pub/languages/fortran/ch2-13.html

    PS:当你说: matname(matidx) 它得到整个字符串(256)个字符......所以这是你的字符串加上空格或垃圾

    关于string - Fortran 77 中的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/725465/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com