Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ jstrncmp(3J) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

jctype(3J)

string(3)

set_syscode(3J)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026