string - 未知长度的字符返回函数

标签 string function fortran character trim

如何使用结果长度未知的字符函数?
trim()据我了解,函数表明可以不指定返回字符串的长度。

例如:

write (*,*) trim(str)

将只返回字符串的一部分,没有尾随空格。

该函数对调用前返回字符串的长度一无所知。

trim()功能有限制吗?

更多的变体是找到trim()的原始代码功能。

我找到了 ( Returning character string of unknown length in fortran ) 但这不是我问题的答案。

可以肯定的是,我想编写函数,该函数按整数返回字符串。

像这样的东西:
function strByInt(myInt)
...
write (strByInt,fmt) myInt; return
end function strByInt

somewhere else:

write (*,*) strByInt(50) ! will write '50'

最佳答案

你引用的那个问题部分回答了它。它提到了具有延迟长度的可分配字符。请参阅下面我经常使用的实现:

  function strByInt(i) result(res)
    character(:),allocatable :: res
    integer,intent(in) :: i
    character(range(i)+2) :: tmp
    write(tmp,'(i0)') i
    res = trim(tmp)
  end function

结果变量在最后一行的赋值时分配以适合答案。
trim function 是一个不同的野兽,作为一个内在函数,它不必在 Fortran 中编程,并且可以遵守不同的规则。它只是返回它需要返回的东西。但它可以很容易地实现如上。

关于string - 未知长度的字符返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22460220/

相关文章:

python - 将两个列表组合成字符串

ruby - 通过 ruby​​ 中的双 splat 传递空哈希

Javascript:如何使第一个随机数始终高于第二个随机数

algorithm - 在 FORTRAN 中以一定精度查找 pi 的 Monte Carlo 集成

Fortran 在 for 循环内向量化日志

fortran - 添加 Openmp 指令时出现奇怪的 gfortran 编译错误

c - 我如何使用 strcastr()?

java - Java 中表达式 "new String(...)"的用途是什么?

c - 在C中的两个字符串之间添加空格

ios - 我可以在 swift 中有两种类型的参数吗?