首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回字符的Fortran函数

问返回字符的Fortran函数
EN

Stack Overflow用户
提问于 2014-12-03 17:02:47
回答 1查看 147关注 0票数 2

我有一个返回字符串的函数。在Fortran中,需要定义输出s的长度,而不能定义输出s的长度(len=*) )。我不知道当我调用一个函数时,在函数中声明的字符串更短或更长时,可能会遇到什么问题。

代码语言:javascript
复制
Function real_to_str_new  &
  (                       &
    r, fmt                &
  )                       &
    Result (s)

Real, Intent(in) :: r
Character (len=*), Intent(in) :: fmt

Character (len=65) :: s
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 19:31:47

函数结果的存在并不是很重要,问题遵循赋值规则。

在(内部)赋值中,对于字符类型有variable = expr,规则7.2.1.3,10是:

对于变量类型为字符的内部赋值语句,expr可能具有不同的字符长度参数,在这种情况下,expr到变量长度的转换如下。 (1)如果变量的长度小于expr的长度,则从右截断expr的值,直到与变量的长度相同为止。 (2)如果变量的长度大于expr的长度,则用空格将expr的值扩展到与变量相同的长度。

在这种情况下,expr (作为函数结果)具有长度参数65,而variable将具有声明的length参数(除非allocatable起作用)。

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

https://stackoverflow.com/questions/27277484

复制
相关文章

相似问题

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