この章の目次にもどる
前頁:3.2 mtstring.h にもどる
次頁:3.4 tf.h にすすむ

3.3 wtstring.h

言語指定付き TC 文字列を、1 文字を固定長 (32 bit ) の形式に変換、 各種操作を行うライブラリである。

□ ワイドTRON文字型

ワイド TRON 文字型は 32 bit の符号付き整数であり、2 つの要素で構成される。

    0xxxxxxx xxxxxxxx yyyyyyyy yyyyyyyy (2進表現)
    MSB                             LSB

    xxxxxxx xxxxxxxx: 言語指定コード(0x0000, 0x0021〜, 0x7fff)
    yyyyyyyy yyyyyyyy: 文字コード
言語指定: TLANG型
ただし、0 の場合は言語非依存の文字(制御文字等)
0x7fffの場合は不正な言語指定コードを表す。
文字コード: TC型
   typedef W       WTC;
towtc
 
ワイドTRON文字への変換

言語指定コード lang, 文字コード tc であるワイド TRON 文字を生成して戻す。
lang, tc の妥当性のチェックは行われない。

#define towtc(lang, tc)
        (((WTC)(lang) & 0x7fff) << 16 | ((WTC)(tc) & 0xffff))
wtcchar, wtclang
 
ワイドTRON文字の要素の取り出し

ワイド TRON 文字 wtc から、 言語指定コードもしくは文字コードを取り出して戻す。

wtc の妥当性のチェックは行われない。

#define wtcchar(wtc) ((WTC)(wtc) & 0x0000ffff)
#define wtclang(wtc) ((WTC)(wtc) >> 16)

#define WTNULL          0       /* 文字列終端 */

tctowtc
 
TC 文字列から WTC 文字列への変換

【形式】

W tctowtc( WTC *dst, TC *src, W len )

【パラメータ】

WTC     *dst    変換結果格納領域へのポインタ
TC      *src    変換対象TC文字列へのポインタ
W       len     変換結果の最大データ長(WTC単位)

【リターン値】

変換結果の文字数(WTC単位)

【解説】

src の文字列を WTC 文字列へ変換して dst へ格納する。 TNULL に達するか、len 文字 ( WTC 単位 ) まで変換する。
len 文字まで変換したときは、WTNULL は格納されない。 ただし、len < 0 の場合は len は無視される。 変換結果の文字数 ( WTC 単位 ) を戻値に返す。 文字数には WTNULL の分は含まれない。 dst = NULL の場合は変換結果は格納されないが、 戻値に文字数は返す。

wtctotc
 
WTC 文字列から TC 文字列への変換

【形式】

W wtctotc( TC *dst, WTC *src, W len )

【パラメータ】

TC      *dst    変換結果格納領域へのポインタ
WTC     *src    変換対象WTC文字列へのポインタ
W       len     変換結果の最大データ長(TC単位)

【リターン値】

変換結果の文字数(TC単位)

【解説】

src の文字列を TC 文字列へ変換して dst へ格納する。 WTNULL に達するか、len 文字 ( TC 単位 ) まで変換する。
len 文字まで変換したときは、 TNULL は格納されない。 ただし、len < 0 の場合は len は無視される。 変換結果の文字数(TC 単位)を戻値に返す。
文字数には TNULL の分は含まれない。 dst = NULL の場合は変換結果は格納されないが、 戻値に文字数は返す。

wtc_strcmp, wtc_strncmp
 
文字列の比較

【形式】

W wtc_strcmp( WTC *s1, WTC *s2 )
W wtc_strncmp( WTC *s1, WTC *s2, W len )

【パラメータ】

WTC     *s1     比較対象文字列へのポインタ
WTC     *s2     比較対象文字列へのポインタ

W       len     比較文字数(WTC単位)

【リターン値】

> 0 : s1 > s2
= 0 : s1 = s2
< 0 : s1 < s2

【解説】

文字列 s1s2 を比較する。
s1s2 の先頭から 1 文字ずつ比較し、最初に不一致となった文字の大小が比較結果として返される。
s1 または s2WTNULL に出会うまで比較される。 WTNULL に出会うまで s1s2 の文字列が一致していた場合は、先に WTNULL に出会った方が小さいと判断される。
文字の比較は、まず言語指定コード ( WTC の上位 16 ビット ) が比較される。言語指定コードが一致していた場合は、 文字コード ( WTC の下位 16 ビット ) が比較される。
言語指定コードは、TLANG の値によって比較される。 文字コードは、tc_chcmp() によって比較される。

wtc_strncmp() は、 最大 len 文字 ( WTC 単位 ) まで比較する。
それ以外は、wtc_strcmp() と同じ。

wtc_strcat, wtc_strncat
 
文字列の連結

【形式】

WTC* wtc_strcat( WTC *dst, WTC *src )
WTC* wtc_strncat( WTC *dst, WTC *src, W len )

【パラメータ】

WTC     *dst    連結先文字列へのポインタ
WTC     *src    連結対象文字列へのポインタ

W       len     連結する文字列長 ( WTC 単位 )

【リターン値】

連結後の文字列へのポインタ ( dst )

【解説】

文字列 dst の後ろに src を追加する。
dstWTNULL の位置に src が追加され、 必ず終端に WTNULL が付加される。 戻値に dst を返す。

wtc_strncat() は、src の文字列を最大 len 文字 ( WTC 単位 ) まで連結する。
それ以外は wtc_strcat() と同じ。

wtc_strcpy, wtc_strncpy
 
文字列の複写

【形式】

WTC* wtc_strcpy( WTC *dst, WTC *src )
WTC* wtc_strncpy( WTC *dst, WTC *src, W len )

【パラメータ】

WTC     *dst    複写先領域へのポインタ
WTC     *src    複写元文字列へのポインタ

W       len     複写対象の文字列長(WTC単位)

【リターン値】

転送先の文字列へのポインタ ( dst )

【解説】

文字列 srcdst へコピーする。
戻値に dst を返す。

wtc_strncpy() は、src の文字列を最大 len 文字 ( WTC 単位 ) までコピーする。
srclen 文字より短い場合は、 dst の残りは len 文字に達するまで WTNULL で埋める。

wtc_strset
 
文字列の設定

【形式】

WTC* wtc_strset( WTC *str, WTC ch, W len )

【パラメータ】

WTC     *str    設定先へのポインタ
WTC     ch      設定する文字
W       len     設定する文字数(WTC単位)

【リターン値】

設定した文字列へのポインタ ( str )

【解説】

srclen 文字 ( WTC 単位 ) まで ch で埋める。 終端に WTNULL は付加されない。 戻値に str を返す。

wtc_strlen
 
文字列長の取り出し

【形式】

W wtc_strlen( WTC *str )

【パラメータ】

WTC     *str    文字列へのポインタ

【リターン値】

文字列長(WTC単位)

【解説】

str の長さ ( WTC 単位 ) を求める。
WTNULL の分は文字数に含めない。

wtc_strchr, wtc_strrchr
 
文字列検索

【形式】

WTC* wtc_strchr( WTC *str, WTC ch, WTC mask )
WTC* wtc_strrchr( WTC *str, WTC ch, WTC mask )

【パラメータ】

WTC     *str    検索対象文字列へのポインタ
WTC     ch      検索文字
WTC     mask    検査マスク

【リターン値】

検索で見つかった文字へのポインタ

【解説】

str の文字列から (*str & mask) == ch を満たす文字を探す。 文字列終端の WTNULL も検索対象となる。
wtc_strchr()str の先頭から終端へ向かって探す。
wtc_strrchr()str の終端から先頭へ向かって探す。
最初に見つかった位置を戻値に返す。 見つからなかった場合は NULL を返す。


この章の目次にもどる
前頁:3.2 mtstring.h にもどる
次頁:3.4 tf.h にすすむ