  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
日本語 OpenVMS 日本語ライブラリ 利用者の手引き
  
 
  
 
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較
 文字列1が文字列2で始まっているかどうかを調べます。
 
 
 
形式
match = JLB$STR_START ( str1, str2 [, flg])
  
 
引数
 
 
| 
strl
 | 
 
 | 
 
|         JLB usage
 | 
比較対象文字列1
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Descriptor渡し
 | 
 
| 
str2
 | 
 
 | 
 
|         JLB usage
 | 
比較対象文字列2
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Descriptor渡し
 | 
 
| 
flg
 | 
 
 | 
 
|         JLB usage
 | 
変換フラグ
 | 
 
|         type
 | 
Byte
 | 
 
|         access
 | 
入力のみ
 | 
 
|         type
 | 
Reference渡し
 | 
 
|  
 | 
比較の前に行う変換を指定する。
 | 
 
|  
 | 
bit 0
 | 
0 : 英大文字/小文字変換を行う
 | 
 
|  
 | 
 
 | 
1 : 英大文字/小文字変換を行わない
 | 
 
|  
 | 
bit 1
 | 
0 : 全角/半角変換を行う
 | 
 
|  
 | 
 
 | 
1 : 全角/半角変換を行わない
 | 
 
|  
 | 
bit 2
 | 
0 : ひらがな/カタカナ変換を行う
 | 
 
|  
 | 
 
 | 
1 : ひらがな/カタカナ変換を行わない
 | 
 
 
  
 
戻り値
 
| match
 | 
1 : 文字列 1 が文字列 2 で始まっている
 | 
 
|  
 | 
0 : 文字列 1 が文字列 2 で始まっていない
 | 
 
 
  
 
  
 
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の検索  
 検索文字列が含まれていない場合は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 ); 
    } 
} 
 |  
 
  
 
  
 
文字列の後の空白の切り捨て  
 文字列の後に含まれる空白(半角および全角)ならびにタブを切り捨てます。
 
 
 
形式
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' ); 
} 
 |  
 
  
 
  
 
文字列の切り捨て  
 文字列を指定された長さで切り捨てます。
 
 
 
形式
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
 | 
 
 
  
 
  
 
文字の検索  
 入力文字列中で最初に現れた検索文字の文字位置を返します。検索文字が含まれていない場合は0を返します。
 
 
 
形式
index = JLB$LOCC ( char-str, src-str )
  
 
引数
 
 
| 
char-str
 | 
 
|         JLB usage
 | 
検索文字
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Descriptor渡し
 | 
 
| 
src-str
 | 
 
|         JLB usage
 | 
入力文字列
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Descriptor渡し
 | 
 
 
  
 
戻り値
 
  
 
例
 
 
#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 ); 
} 
 |  
 
  
 
  
 
文字の飛び越し  
 入力文字列中で最初に現れた検索文字以外の文字位置を返します。検索文字以外の文字がない場合は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
 | 
 
 
  
 
  
 
文字列からの文字の取り出し
 
 
 
形式
char-code = JLB$RCHAR ( src-str [, pos] )
  
 
引数
 
 
| 
src-str
 | 
 
|         JLB usage
 | 
入力文字列
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Descriptor渡し
 | 
 
| 
pos
 | 
 
|         JLB usage
 | 
文字位置
 | 
 
|         type
 | 
Longword
 | 
 
|         access
 | 
入力のみ
 | 
 
|         mechanism
 | 
Reference渡し
 | 
 
 
  
 
戻り値
 
  
 
 
      |