Sun Studio 12: Fortran ライブラリ・リファレンス

1.4.27 index、rindex、lnblnk: 部分列のインデックスまたは長さ

これらの関数は、次のように文字列による探索を行います。

index(a1,a2)

文字列 a1 の中で最初に出現する文字列 a2 のインデックス

rindex(a1,a2)

文字列 a1 の中で最後に出現する文字列 a2 のインデックス

lnblnk(a1)

文字列 a1 の中の空白以外の最後の文字のインデックス

index は次の形式をとります。

1.4.27.1 index: 文字列の中で最初に出現する部分列

index は、組み込み関数で次のように呼び出します。

n = index( a1, a2 )

a1

character

入力 

文字列 

a2

character

入力 

部分列

戻り値 

INTEGER

出力 

n>0: a1 の中で最初に出現する a2 のインデックス

n=0: a1 の中に a2 が出現しない

INTEGER*8 と宣言されている場合は、64 ビット環境用にコンパイルされ、さらに文字変数 a1 が非常に大きな文字列であるときに (2 G バイトを超えるもの)、index()INTEGER*8 値を戻します。

1.4.27.2 rindex: 文字列の中で最後に出現する部分列

関数は、次のように呼び出します。

INTEGER*4 rindex

n = rindex( a1, a2 )

a1

character

入力 

文字列 

a2

character

入力 

部分列 

戻り値 

INTEGER*4 または INTEGER*8

出力 

n>0: a1 の中で最後に出現する a2 のインデックス

n=0: a1 の中に a2 が出現しない。64 ビット環境の場合は、INTEGER*8 が戻る。

1.4.27.3 lnblnk: 文字列の中の空白以外の最後の文字

関数は、次のように呼び出します。

n = lnblnk( a1 )

a1

character

入力 

文字列 

戻り値 

INTEGER*4 または INTEGER*8

出力 

n>0: a1 の中の空白以外の最後の文字のインデックス

n=0: a1 はすべて空白以外の文字。64 ビット環境の場合は、INTEGER*8 が戻る。

例: index()rindex()lnblnk():


demo% cat tindex.f
*                        123456789012345678901
       character s*24 / 'abcPDQxyz...abcPDQxyz' /
       INTEGER*4 declen, index, first, last, len, lnblnk, rindex
       declen = len( s )
       first = index( s, 'abc' )
       last = rindex( s, 'abc' )
       lastnb = lnblnk( s )
       write(*,*) declen, lastnb
       write(*,*) first, last
       end
demo% f95 tindex.f
demo% a.out
24 21     <- 組み込み関数 len() が宣言された s の長さを返すため、declen は 24
 1 13

注 –

64 ビット環境で動作するようコンパイルされたプログラムは、非常に大きな文字列を処理するには indexrindex 、および lnblnk (および返される変数) INTEGER*8 を宣言します。