JSTRING(3J) — UNIX Programmer’s Manual
名称
jstrncat, jstrcmp, jstrncmp, jstrncpy, jstrlen, jindex, jrindex, jstrtok, jstradv, jstrmatch, jstrskip, btom, mtob − 日本語文字列操作
形式
#include <jstrings.h>
char ∗jstrncat(s1, s2, n)
char ∗s1, ∗s2;
...
解説
これらの関数では、 漢字またはカタカナにはバイト数の代わりに文字数が 用いられます。ASCIIは、バイト数でカウントされます。
原則として、2 バイトコードの 2 番目のバイトが ナル文字である場合には、その最初のバイトは、 ナル文字であるとみなされます。 つまり、2 番目のバイトが 不当なコードは、その 2 番目のバイトが 2 バイトコード全体を 構成するものとしてエラーチェックなしで渡されます。 しかしこれには、いくつかの例外があります(下記参照)。
EUC の漢字コードを使用する場合には、 これらの関数を用いる前に set_syscode("euc") の呼び出しが必要です。
char ∗jstradv(s, n)
char ∗s;
jstradv は、文字列 s 内の n 番目の文字を指し示す ポインタを返します。n < 0 である場合には、s を 返します。n が文字列より大きな場合には、 終了のナル文字を指し示すポインタを返します。
int jstrcmp(s1, s2)
int jstrncmp(s1, s2, n)
char ∗s1,∗s2;
strcmp と strncmp の漢字バージョン。 これらは、文字列の順位 ASCII < カタカナ < 漢字に 従って、0 より大きな、0 に等しい、または 0 より小さな 1 個の整数を 返します。 jstrncmp では、 引数 n は文字数です。
int jstrlen(s)
char ∗s;
strlen の漢字バージョン。jstrlen は、 文字列 s 内のナル以外の文字数を返します。2バイトの漢字 またはカタカナ(EUC)は、1 文字としてカウントされます。
char ∗jstrmatch(s, anys)
char ∗string, ∗anys;
char ∗jstrskip(s, notanys)
char ∗s, ∗notanys;
jstrmatch は、anys で指定された文字のいずれかに一致する、 文字列 s 内にある最初の文字を指し示すポインタを 返します。jstrskip は、notanys で指定された文字の いずれにも一致しない、 文字列 s 内にある最初の文字を 指し示します。s を超える場合には、 これらの関数はゼロを返します。
char ∗jstrncat(s1, s2, n)
char ∗s1, ∗s2;
strncat の漢字バージョン。jstrncat は、 s2 の最初の n 文字を s1 に 追加します。2バイトの漢字または カタカナ(EUC)は、1文字としてカウントされます。
char ∗jstrncpy(s1, s2, n)
char ∗s1, ∗s2;
strncpy の漢字バージョン。jstrncpy は、 s2 を s1 に コピーします。jstrncpy は、s2 の切り捨てまたは s2 への ナルの埋込みを行って、n 個の文字を コピーします。s2 の長さが n またはそれ以上である場合には、 コピーされた文字列は、 ナルで終了しません。2 バイトの漢字または カタカナ(EUC)は、1 文字としてカウントされます。
char ∗jstrtok(string, sepset)
char ∗string, ∗sepset;
sepset によって分離された最初のトークンを 指し示すポインタを返します。ナルの string を用いた それ以降の呼び出しでは、直前に返されたものの 次のトークンのポインタを 返します。string が使い果たされると、 最後にナルを返します。 すべてのトークンはナルで終了され、string は破壊されます。
char ∗jindex(s,c)
char ∗jrindex(s,c)
char ∗s;
unsigned short c;
index と rindex の漢字バージョン。jindex は、 文字列 s 内にある最初の c を指し示すポインタを返します。 引数 c は、かな/漢字キャラクタを指定するために 使用できますが、2 バイトの漢字を表す符号なし short 型の 値でなければなりません。jrindex は、 文字列 s 内にある最後の c を指し示すポインタを返します。
int btom(string, nbyte) /∗ バイトから文字 ∗/
char ∗string;
int nbyte;
btom は、string から string+nbyte まで、 または終了のナルまでのどちらか短いほうの文字数を 返します。2 バイトの漢字またはカタカナが、1 文字として カウントされます。nbyte は、バイト数を 表します。string+nbyte が 漢字キャラクタの 2 番目のバイトを指す場合には、 その漢字はカウントには 含まれません。nbyte がゼロまたはそれより小さな場合には、 ゼロを返します。
int mtob(string, nmoji) /∗ 文字からバイト ∗/
char ∗string;
int nmoji;
mtob は、string から nmoji 個の文字まで、 または終了のナルまでのどちらか短いほうのバイト数を 返します。2 バイトの漢字または カタカナ(EUC)は、nmoji では 1 個としてカウントします。
関連ファイル
/usr/include/jstrings.h
/lib/libc.a
関連事項
jctype(3J), string(3), set_syscode(3J)
NEWS-OSRelease 3.3