# マニュアルページ len.3f

## 名前

         index, rindex, lnblnk, len - インデックスまたは部分文字列 の
         長さの取得

## 形式

         CHARACTER*(*) string, substr
         n = INDEX (string, substr)

         INTEGER*4 FUNCTION rindex
         CHARACTER*(*) string, substr
         n = rindex (string, substr)

         INTEGER*4 FUNCTION lnblnk
         CHARACTER*(*) string
         n = lnblnk (string)

         CHARACTER*(*) string
         n = LEN (string)

## 機能説明

         INDEX(a1,a2) は、文字列 a1 の中で最初に現れた部分文字列 a2
         のインデックスを返します。該当する部分文字列が見つからなかっ
         た場合は、ゼロを返します。(組み込み関数)

         rindex(a1,a2) は、文字列 a1 の中で最後に現れた部分文字列 a2
         のインデックスを返します。該当する部分文字列が見つからなかっ
         た場合は、ゼロを返します。

         lnblnk(a1) は、文字列 a1 の中の、空白以外の最後の文字のイン
         デックスを返します。すべての文字オブジェクトが固定長であり、
         必要に応じて空白でパディングされている f77 では、この関数が
         役立ちます。

         LEN は、文字列引数の宣言されたサイズを返します。(組み込み関
         数)

## 注意事項

         len、 index、 rindex、 lnblnk を 64 ビット環境で使用できるよ
         うに、コンパイラオプション -xarch=v9 や v9a を付けてコンパイ
         ルを実行すると、2 GB 以上あるような大きな文字列に適用した場
         合は、戻り値が INTEGER*4 のデータ範囲を越えてしまうことがあ
         ります。このような場合は、関数、結果を受け取る変数ともに、
         INTEGER*8 と宣言する必要があります。

## 使用例

         例:  LEN()、 INDEX()、 rindex()、 lnblnk()

              CHARACTER s*32 / '123456789 123456789 1234' /
                 INTEGER*4 declen, first, last, lnblnk, rindex
                 declen = LEN( s )
                 first = INDEX( s, '123' )
                 last = rindex( s, '123' )
                 lastnb = lnblnk( s )
                 PRINT*, declen, lastnb, first, last
                 END

         demo% f77 -silent tindex.f demo% a.out
            32 24  1 21
         demo%

         上記の例では、 declen は 32 です。24 ではありません。これ
         は、文字変数の宣言された長さであり、実際の文字列の長さではあ
         りません。

## ファイル

         libfui.a