 |
≫ |
|
|
 |
日本語 OpenVMS 日本語ライブラリ 利用者の手引き
文字列からの文字の取り出し,およびポインタの更新
形式
char-code = JSY$CH_RNEXT ( char-ptr )
引数
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Reference渡し
|
戻り値
| char-code
|
ポインタが指している文字の文字コード
|
文字列への文字の書き込み
形式
JSY$CH_WCHAR ( char-code, char-ptr )
引数
|
char-code
|
| JSY usage
|
文字コード
|
| mechanism
|
Value渡し
|
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Value渡し
|
文字列への文字の書き込みおよびポインタの更新
形式
JSY$CH_WNEXT ( char-code, char-ptr )
引数
|
char-code
|
| JSY usage
|
文字コード
|
| mechanism
|
Value渡し
|
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Reference渡し
|
文字列からの文字の取り出し,および文字列の終わりのチェック
形式
char-code = JSY$CH_GCHAR ( char-ptr, end-ptr )
引数
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Value渡し
|
|
end-ptr
|
| JSY usage
|
文字列の終わりを示すポインタ
|
| mechanism
|
Value渡し
|
戻り値
| char-code
|
ポインタが指している文字の文字コード
|
|
|
文字列の終わりを越えていた場合は 'FFFF'(16 進)
|
文字列からの文字の取り出し,ポインタの更新,および文字列の終わりのチェック
形式
char-code = JSY$CH_GNEXT ( char-ptr, end-ptr )
引数
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Reference渡し
|
|
end-ptr
|
| JSY usage
|
文字列の終わりを示すポインタ
|
| mechanism
|
Value渡し
|
戻り値
| char-code
|
ポインタが指している文字の文字コード
|
|
|
文字列の終わりを越えていた場合は 'FFFF'(16 進)
|
文字列への文字の書き込み,および文字列の終わりのチェック
形式
status = JSY$CH_PCHAR ( char-code, char-ptr, end-ptr )
引数
|
char-code
|
| JSY usage
|
文字コード
|
| mechanism
|
Value渡し
|
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Value渡し
|
|
end-ptr
|
| JSY usage
|
文字列の終わりを示すポインタ
|
| mechanism
|
Value渡し
|
戻り値
| status
|
1 : 文字の書き込みができた場合
|
|
|
0 : 文字の書き込みができなかった場合
|
|
|
(end-ptr を越えた)
|
文字列への文字の書き込み,ポインタの更新,および文字列の終わりのチェック
形式
status = JSY$CH_PNEXT ( char-code, char-ptr, end-ptr )
引数
|
char-code
|
| JSY usage
|
文字コード
|
| mechanism
|
Value渡し
|
|
char-ptr
|
| JSY usage
|
文字の1バイト目を指すポインタ
|
| mechanism
|
Reference渡し
|
|
end-ptr
|
| JSY usage
|
文字列の終わりを示すポインタ
|
| mechanism
|
Value渡し
|
戻り値
| status
|
1 : 文字の書き込みができた場合
|
|
|
0 : 文字の書き込みができなかった場合
|
|
|
(end-ptr を越えた)
|
例
#include <stdio.h>
#include <string.h>
#define ENCODE( c )\
( ( ( ( c ) & 0xff ) << 8 ) |( ( ( c ) & 0xff00 ) >> 8 ) )
static void create_display_string();
main()
{
unsigned short int char_code;
char *char_ptr,
*end_ptr;
int status;
int byte_offset = 4;
char string[] = "実行前の文字列";
char disp_str[32];
extern int jsy$ch_pnext();
char_code = ENCODE( '後' );
char_ptr = string + byte_offset;
end_ptr = string + strlen( string );
printf( "書き込む文字 :%c%c\n",
( char_code & 0xff00 ) >> 8, char_code & 0xff );
create_display_string( char_ptr, disp_str );
printf( "実行前の文字列 :\"%s\" 実行前の位置の文字 :%s\n",
string, disp_str );
status = jsy$ch_pnext( char_code, &char_ptr, end_ptr );
create_display_string( char_ptr, disp_str );
printf( "実行後の文字列 :\"%s\" 実行後の位置の文字 :%s ステータス :%1d\n",)
string, disp_str, status );
}
static void create_display_string(src, disp)
char *src;
char *disp;
{
int nof_byte_char = 1;
unsigned char check;
check = (unsigned char)(*src);
if ( ( 0x0A1 <= check ) && ( check <= 0x0FE ) ) /* 範囲内なら2バイト文字 */
nof_byte_char = 2;
strncpy( disp, src, nof_byte_char );
disp[ nof_byte_char ] = '\0';
}
|
文字が占めるバイト数の入手
形式
nof-byte = JSY$CH_SIZE ( char-code )
引数
|
char-code
|
| JSY usage
|
文字コード
|
| mechanism
|
Value渡し
|
戻り値
| nof-byte
|
文字コードが255以下の場合は1,256以上の場合は2
|
文字列が占めるバイト数の入手
形式
nof-byte = JSY$CH_NBYTE ( top-ptr,#nof-char )
引数
|
top-ptr
|
| JSY usage
|
文字列の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
nof-char
|
| JSY usage
|
文字数
|
| mechanism
|
Value渡し
|
戻り値
| nof-byte
|
top-ptrからnof-char文字が占めるバイト数
|
文字列に含まれる文字数の入手
形式
nof-char = JSY$CH_NCHAR ( top-ptr,#nof-byte )
引数
|
top-ptr
|
| JSY usage
|
文字列の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
nof-byte
|
| JSY usage
|
バイト数
|
| mechanism
|
Value渡し
|
戻り値
| nof-char
|
top-ptrからnof-byteバイト内にある文字数
|
文字列の検索
形式
address = JSY$POSITION ( src-str, src-len, sub-str, sub-len )
引数
|
src-str
|
| JSY usage
|
検索される文字列の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
src-len
|
| JSY usage
|
検索される文字列のバイト長
|
| mechanism
|
Value渡し
|
|
sub-str
|
| JSY usage
|
検索する文字列の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
sub-len
|
| JSY usage
|
検索する文字列のバイト長
|
| mechanism
|
Value渡し
|
戻り値
| address
|
検索する文字列が含まれていた場合は文字列の先頭アドレス
|
|
|
文字列が含まれていなければ 0
|
|
|
sub-len がゼロの場合は src-str
|
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較
形式
status = JSY$STR_EQUAL ( str1, len1, str2, len2, flg )
引数
|
str1
|
|
| JSY usage
|
比較対象文字列 1 の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
len1
|
|
| JSY usage
|
比較対象文字列 1 のバイト長
|
| mechanism
|
Value渡し
|
|
str2
|
|
| JSY usage
|
比較対象文字列 2 の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
len2
|
|
| JSY usage
|
比較対象文字列 2 のバイト長
|
| mechanism
|
Value渡し
|
|
flg
|
|
| JSY usage
|
変換フラグ
|
|
|
比較の前に行う変換を指定する。
|
|
|
bit 0
|
0 : 英大文字/小文字変換を行う
|
|
|
|
1 : 英大文字/小文字変換を行わない
|
|
|
bit 1
|
0 : 全角/半角変換を行う
|
|
|
|
1 : 全角/半角変換を行わない
|
|
|
bit 2
|
0 : ひらがな/カタカナ変換を行う
|
|
|
|
1 : ひらがな/カタカナ変換を行わない
|
| mechanism
|
Value渡し
|
戻り値
| ret-code
|
1 : 文字列1と文字列2が等しい
|
|
|
0 : 文字列1と文字列2が等しくない
|
英大文字/小文字,全角/半角,ひらがな/カタカナ変換による文字列の比較
文字列1が文字列2で始まっているかどうかを調べます。
形式
status = JSY$STR_START ( str1, len1, str2, len2, flg )
引数
|
str1
|
|
| JSY usage
|
比較対象文字列1の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
len1
|
|
| JSY usage
|
比較対象文字列1のバイト長
|
| mechanism
|
Value渡し
|
|
str2
|
|
| JSY usage
|
比較対象文字列2の先頭を指すポインタ
|
| mechanism
|
Value渡し
|
|
len2
|
|
| JSY usage
|
比較対象文字列2のバイト長
|
| mechanism
|
Value渡し
|
|
flg
|
|
| JSY usage
|
変換フラグ
|
|
|
比較の前に行う変換を指定する。
|
|
|
bit 0
|
0 : 英大文字/小文字変換を行う
|
|
|
|
1 : 英大文字/小文字変換を行わない
|
|
|
bit 1
|
0 : 全角/半角変換を行う
|
|
|
|
1 : 全角/半角変換を行わない
|
|
|
bit 2
|
0 : ひらがな/カタカナ変換を行う
|
|
|
|
1 : ひらがな/カタカナ変換を行わない
|
| mechanism
|
Value渡し
|
戻り値
| ret-code
|
1 : 文字列1が文字列2で始まっている
|
|
|
0 : 文字列1が文字列2で始まっていない
|
|