2

我有一个简单的程序:

PROGRAM concatenate

CHARACTER::char*11,name*4

CHARACTER(20)::charname

char='hello there'
name='Fred'

WRITE(*,*) char

WRITE(*,*) name

charname = char // ', ' // name

WRITE(*,*) charname

END PROGRAM

假设我不想提前指定变量 charname 的长度,让它的长度自动由 char 和 name 的长度决定。我可以在 Fortran 中做到这一点吗?

谢谢

4

1 回答 1

5

是的,你可以这样声明charname

character(len=:), allocatable :: charname

charname当您为其赋值时,编译器/运行时将负责制作正确的长度

charname = char//','//name

您甚至可以使用另一个语句自动重新分配它,例如

charname = char//', Mr'//name

这一切都取决于您的编译器是否已经实现了 Fortran 2003 的这些功能,但所有广泛使用的编译器的最新版本都具有。

于 2013-03-02T17:07:32.023 回答