Oracle Solaris Studio 12.4 Man Pages

印刷ビューの終了

更新: January 2015
 
 

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 は、文字列引数の宣言されたサイズを返します (組み込み関数)。

64 ビット環境用に (コンパイラオプション -m64 を付けて) コンパイルすると、ルーチン lenindexrindexlnblnk は、2G バイト以上の非常に大きな文字列に適用した場合に、INTEGER*4 データのデータ範囲を超える値を返すことがあります。このような状況では、結果を受け取る変数とともに、これらの関数を INTEGER*8 と宣言する必要があります。

使用例

使用例
 
Example: 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 は 24 ではなく、32 です。これは文字変数の宣言された長さであり、これに含まれる文字列の長さではありません。

ファイル

libfui.a