2013-03-02 71 views
2

我有一个简单的程序:Fortran的存储连接字符串

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的长度提前,使得其长度是自动的长度确定字符和名称。我可以在Fortran中做到吗?

感谢

回答

5

是的,你可以声明charname这样的:

character(len=:), allocatable :: charname 

和编译器/运行时,当你把值赋给它会使得charname长短合适的护理

charname = char//','//name 

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

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

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

+0

干杯马克,非常有帮助。那么F2003标准的这个字符可分配特征部分,还是可以在F90/95中使用? – user1654183 2013-03-02 22:12:43

+0

这是f2003中的新功能 – 2013-03-04 10:22:15