日本語 Compaq OpenVMS
日本語ライブラリ 利用者の手引き


前へ 次へ 目次 索引


<戻り値>

match 1 : 文字列1が文字列2で始まっている
  0 : 文字列1が文字列2で始まっていない

JLB$STR_SEARCH

英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の検索

検索文字列が含まれていない場合は0を返します。

<形式>

index = JLB$STR_SEARCH ( src-str, sub-str [[, start-pos][, flg]] )

<引数>

src-str  
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
sub-str  
        JLB usage 検索文字列
        access 入力のみ
        mechanism Descriptor渡し
start-pos  
        JLB usage 検索開始文字位置 (省略時は1)
        type Longword
        access 入力のみ
        mechanism Reference渡し
flg  
        JLB usage 変換フラグ (省略時は0)
        type Byte
        access 入力のみ
        mechanism Reference渡し
  検索の前に行う変換を指定する。
  bit 0 0 : 英大文字/小文字変換を行う
    1 : 英大文字/小文字変換を行わない
  bit 1 0 : 全角/半角変換を行う
    1 : 全角/半角変換を行わない
  bit 2 0 : ひらがな/カタカナ変換を行う
    1 : ひらがな/カタカナ変換を行わない

<戻り値>

    index 検索文字列が含まれている場合はその開始位置
  検索文字列が含まれていなければ 0
  検索文字列の長さがゼロの場合は 1

例)


#include <stdio.h> 
#include <descrip.h> 
#include <string.h> 
 
main() 
{ 
    struct dsc$descriptor_s     src_str; 
    struct dsc$descriptor_s     sub_str; 
    char        flg; 
    int         index; 
    extern int  jlb$str_search(); 
    char        src_str_body[] = "日本語ライブラリ",
                sub_str_body[] = "らいぶらり";
    int         start_pos = 1; 
 
    src_str.dsc$b_class = DSC$K_CLASS_S; 
    src_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    src_str.dsc$w_length = strlen( src_str_body ); 
    src_str.dsc$a_pointer = src_str_body; 
 
    sub_str.dsc$b_class = DSC$K_CLASS_S; 
    sub_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    sub_str.dsc$w_length = strlen( sub_str_body ); 
    sub_str.dsc$a_pointer = sub_str_body; 
 
    printf( "文字列 1:\"%s\"    文字列 2:\"%s\"\n", src_str_body, sub_str_body); 
    for ( flg = 0; flg < 8; ++flg ) { 
        index = jlb$str_search( &src_str, &sub_str, &start_pos, &flg ); 
        printf( "変換フラグ :%1d    結果 :%d\n", flg, index ); 
    } 
} 

JLB$TRIM

文字列の後の空白の切り捨て

文字列の後に含まれる空白(半角および全角)ならびにタブを切り捨てます。

<形式>

ret-status = JLB$TRIM ( dst-str, src-str [, out-len] )

<引数>

dst-str
        JLB usage 出力文字列
        access 出力のみ
        mechanism Descriptor渡し
src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
out-len
        JLB usage 出力文字列のバイト長 (省略時は長さが返りません。)
        type Word
        access 出力のみ
        mechanism Reference渡し

<戻り値>

    ret-status SS$_NORMAL 正常終了
  LIB$_STRTRU 出力文字列用領域の長さが足りないため,出力結果の切り捨てが行われた

例)


#include <stdio.h> 
#include <descrip.h> 
#include <ssdef.h> 
#include <libdef.h> 
#include <string.h> 
 
#include <ssdef.h> 
#include <stsdef.h> 
#include <varargs.h> 
 
main() 
{ 
    struct dsc$descriptor_s     dst_str; 
    struct dsc$descriptor_s     src_str; 
    int         ret_status; 
    extern int  jlb$trim(); 
    char        src_str_body[] = "日本語    "; 
    char        dst_str_body[] = "外国人    "; 
 
    dst_str.dsc$b_class = src_str.dsc$b_class = DSC$K_CLASS_S; 
    dst_str.dsc$b_dtype = src_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    src_str.dsc$w_length = strlen (src_str_body); 
    dst_str.dsc$w_length = strlen (dst_str_body); 
    src_str.dsc$a_pointer = src_str_body; 
    dst_str.dsc$a_pointer = dst_str_body; 
 
    printf( "入力文字列 :\"%s\"\n", src_str_body ); 
 
    ret_status = jlb$trim( &dst_str, &src_str, &dst_str.dsc$w_length ); 
 
    dst_str_body[ dst_str.dsc$w_length ] = '\0'; 
    printf( "出力文字列 :\"%s\"    文字列長 :%d    ステータス :",
        dst_str.dsc$a_pointer, dst_str.dsc$w_length ); 
 
    switch ( ret_status ) { 
    case SS$_NORMAL: 
        printf( "SS$_NORMAL" ); 
        break; 
    case LIB$_STRTRU: 
        printf( "LIB$_STRTRU" ); 
        break; 
    } 
    putchar( '\n' ); 
} 

JLB$TRUNC

文字列の切り捨て

文字列を指定された長さで切り捨てます。

<形式>

ret-status = JLB$TRUNC ( dst-str, src-str, size [, out-len] )

<引数>

dst-str
        JLB usage 出力文字列
        access 出力のみ
        mechanism Descriptor渡し
src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
size
        JLB usage 切り捨てを行う長さ
        type Word
        access 入力のみ
        mechanism Reference渡し
out-len
        JLB usage 出力文字列のバイト長
        type Word
        access 出力のみ
        mechanism Reference渡し

<戻り値>

    ret-status SS$_NORMAL 正常終了
  LIB$_STRTRU 出力結果の切り捨てが行われた

JLB$LOCC

文字の検索

入力文字列中で最初に現れた検索文字の文字位置を返します。検索文字が含まれていない場合は0を返します。

<形式>

index = JLB$LOCC ( char-str, src-str )

<引数>

char-str
        JLB usage 検索文字
        access 入力のみ
        mechanism Descriptor渡し
src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し

<戻り値>

    index 文字位置

例)


#include <stdio.h> 
#include <descrip.h> 
#include <string.h> 
 
main() 
{ 
    struct dsc$descriptor_s     char_str; 
    struct dsc$descriptor_s     src_str; 
    int         index; 
    extern int  jlb$locc(); 
    char        char_str_body[] = "本", 
                src_str_body[]  = "日本語"; 
    char_str.dsc$b_class = src_str.dsc$b_class = DSC$K_CLASS_S; 
    char_str.dsc$b_dtype = src_str.dsc$b_dtype = DSC$K_DTYPE_T; 
    char_str.dsc$w_length = strlen( char_str_body ); 
    char_str.dsc$a_pointer = char_str_body; 
    src_str.dsc$w_length = strlen( src_str_body ); 
    src_str.dsc$a_pointer = src_str_body; 
 
    index = jlb$locc( &char_str, &src_str ); 
 
    printf( "検索文字 :\'%s\'    入力文字列 :\"%s\"\n 結果 :%d\n", 
        char_str_body, src_str_body, index ); 
} 

JLB$SKPC

文字の飛び越し

入力文字列中で最初に現れた検索文字以外の文字位置を返します。検索文字以外の文字がない場合は0を返します。

<形式>

index = JLB$SKPC ( char-str, src-str )

<引数>

char-str
        JLB usage 検索文字
        access 入力のみ
        mechanism Descriptor渡し
src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し

<戻り値>

    index 文字位置
  char-str の長さがゼロの場合は 1

JLB$RCHAR

文字列からの文字の取り出し

<形式>

char-code = JLB$RCHAR ( src-str [, pos] )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
pos
        JLB usage 文字位置
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    char-code 文字コード

JLB$RNEXT

文字列からの文字の取り出しおよびインデックスの更新

<形式>

char-code = JLB$RNEXT ( src-str [, pos] )

<引数>

src-str
        JLB usage 入力文字列
        access 入力のみ
        mechanism Descriptor渡し
pos
        JLB usage 文字位置
        type Longword
        access 更新
        mechanism Reference渡し

<戻り値>

    char-code 文字コード

JLB$WCHAR

文字列への文字の書き込み

<形式>

    ret-status = JLB$WCHAR ( char-code, dst-str [, pos] )

<引数>

char-code
        JLB usage 文字コード
        type Longword
        access 入力のみ
        mechanism Reference渡し
dst-str
        JLB usage 出力文字列
        access 出力のみ
        mechanism Descriptor渡し
pos
        JLB usage 文字位置
        type Longword
        access 入力のみ
        mechanism Reference渡し

<戻り値>

    ret-status 1 : 正常終了
  0 : 出力文字列の長さが短い

JLB$WNEXT

文字列への文字の書き込みおよびインデックスの更新

<形式>

ret-status = JLB$WNEXT ( char-code, dst-str [, pos] )

<引数>

char-code
        JLB usagec: 文字コード
        type Longword
        access 入力のみ
        mechanism Reference渡し
dst-str
        JLB usage 出力文字列
        access 出力のみ
        mechanism Descriptor渡し
pos
        JLB usage 文字位置
        type Longword
        access 更新
        mechanism Reference渡し

<戻り値>

    ret-status 1 : 正常終了
  0 : 出力文字列の長さが短い


前へ 次へ 目次 索引