我有一个关于 Fortran 77 的问题,但找不到解决方案。
我正在尝试存储定义如下的字符串数组:
character matname(255)*255
这是一个由 255 个字符串组成的数组,长度为 255。
后来我从文件中读取名称列表,并像这样设置数组的内容:
matname(matcount) = mname
EDIT:实际上mname
值被硬编码为mname = 'AIR'
类型的character*255
,它是函数的参数matadd()
它执行上一行。但这仅用于测试,将来它将从文件中读取。
后来我想打印它:
write(*,*) matname(matidx)
但它似乎打印了所有 255 个字符,它打印了我分配的字符串和很多垃圾。
- 这就是我的问题,我如何知道存储的字符串的长度?
- 我应该有另一个具有所有长度的数组吗?
- 我怎样才能知道读取的字符串的长度?
Thanks.
您可以使用此函数来获取长度(没有空白尾部)
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 http://www.ibiblio.org/pub/languages/fortran/ch2-13.html
PS:当你说:matname(matidx)时,它会获取整个字符串(256)个字符......所以这就是你的字符串加上空格或垃圾
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)