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 に答える