gtool4/Fortran 90 library document

文字列の取り扱い

2000年10月27日 豊田英司


何が問題か

ライブラリインターフェイスが概念モデルより煩雑になることは極力避けねばなりません。Fortran で gtool4 を作っていく過程では、まっさきに文字処理でその問題にぶちあたりました。Fortran 言語には組み込みの文字型があるのですが、コンパイル時に固定された長さの文字列しか表現できないのです。普通、ファイル名でも属性値でも図のキャプションでも、およそ文字列などというものは長さが変わってあたりまえです。では、どうしたらいいのでしょう?

方式案いろいろ

C風方式

C だって文字列は char 型の固定長配列にすぎないのですが、文字処理を行なう関数ではナル(値ゼロ)の要素があったらそこで文字列が終わり、とすることで可変長の文字列を処理できるようにしています。C ではこの方式でけっこううまくやっています。欠点としては配列を確保するときに最大の長さを指定しなければならないことが挙げられますが、長さが本当に予測できない場合、通常は char  へのポインタを変数として確保しておき、必要に応じて割り付けるようなことをしますので、解決はできます。

Fortran 的に素直な方式

Fortran ではもうちょっと固定長を前面に押し出します。

構造型方式