mtstring.h にもどるtf.h にすすむwtstring.h言語指定付き TC 文字列を、1 文字を固定長 (32 bit ) の形式に変換、 各種操作を行うライブラリである。
ワイド TRON 文字型は 32 bit の符号付き整数であり、2 つの要素で構成される。
0xxxxxxx xxxxxxxx yyyyyyyy yyyyyyyy (2進表現)
MSB LSB
xxxxxxx xxxxxxxx: 言語指定コード(0x0000, 0x0021〜, 0x7fff)
yyyyyyyy yyyyyyyy: 文字コード
typedef W WTC;
|
言語指定コード lang, 文字コード tc
であるワイド TRON 文字を生成して戻す。
lang, tc の妥当性のチェックは行われない。
#define towtc(lang, tc)
(((WTC)(lang) & 0x7fff) << 16 | ((WTC)(tc) & 0xffff))
|
ワイド TRON 文字 wtc から、
言語指定コードもしくは文字コードを取り出して戻す。
wtc の妥当性のチェックは行われない。
#define wtcchar(wtc) ((WTC)(wtc) & 0x0000ffff) #define wtclang(wtc) ((WTC)(wtc) >> 16) #define WTNULL 0 /* 文字列終端 */
|
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 の場合は変換結果は格納されないが、
戻値に文字数は返す。
|
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 の場合は変換結果は格納されないが、
戻値に文字数は返す。
|
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
文字列 s1 と s2 を比較する。
s1 と s2 の先頭から 1
文字ずつ比較し、最初に不一致となった文字の大小が比較結果として返される。
s1 または s2 が
WTNULL に出会うまで比較される。
WTNULL に出会うまで s1 と s2
の文字列が一致していた場合は、先に WTNULL
に出会った方が小さいと判断される。
文字の比較は、まず言語指定コード ( WTC の上位 16 ビット )
が比較される。言語指定コードが一致していた場合は、
文字コード ( WTC の下位 16 ビット ) が比較される。
言語指定コードは、TLANG の値によって比較される。
文字コードは、tc_chcmp() によって比較される。
wtc_strncmp() は、
最大 len 文字 ( WTC 単位 ) まで比較する。
それ以外は、wtc_strcmp() と同じ。
|
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 を追加する。
dst の WTNULL の位置に
src が追加され、
必ず終端に WTNULL が付加される。
戻値に dst を返す。
wtc_strncat() は、src
の文字列を最大 len 文字 ( WTC 単位 )
まで連結する。
それ以外は wtc_strcat() と同じ。
|
WTC* wtc_strcpy( WTC *dst, WTC *src ) WTC* wtc_strncpy( WTC *dst, WTC *src, W len )
WTC *dst 複写先領域へのポインタ WTC *src 複写元文字列へのポインタ W len 複写対象の文字列長(WTC単位)
転送先の文字列へのポインタ ( dst )
文字列 src を dst へコピーする。
戻値に dst を返す。
wtc_strncpy() は、src の文字列を最大
len 文字 ( WTC 単位 ) までコピーする。
src が len 文字より短い場合は、
dst の残りは len 文字に達するまで
WTNULL で埋める。
|
WTC* wtc_strset( WTC *str, WTC ch, W len )
WTC *str 設定先へのポインタ WTC ch 設定する文字 W len 設定する文字数(WTC単位)
設定した文字列へのポインタ ( str )
src を len 文字 ( WTC 単位 )
まで ch で埋める。
終端に WTNULL は付加されない。
戻値に str を返す。
|
W wtc_strlen( WTC *str )
WTC *str 文字列へのポインタ
文字列長(WTC単位)
str の長さ ( WTC 単位 ) を求める。
WTNULL の分は文字数に含めない。
|
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 を返す。
mtstring.h にもどるtf.h にすすむ