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
にすすむ