Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

jctype(3J)

string(3)

setlocale(3)

JSTRING(3J)  —  NEWS-OS 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;
...

解説

string(3) の関数がバイト単位で処理を行うのに対して、 ここで挙げた関数は、 複数バイト文字列(2バイト文字と1バイト文字が 混在した文字列)を文字単位で処理します。

setlocale(LC_CTYPE, "") の呼出しにより、 シフト JIS、EUC、ISO 8859-1、TCA コードのいずれであっても、 これらの関数は正しく動作します。

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 < 片仮名 < 漢字 に従って、 文字列の比較を行い、結果を負、ゼロ、正の整数で返します。 jstrncmp では、 引数 n は文字数です。

int jstrlen(s)
char ∗s;

strlen の漢字バージョンです。 jstrlen は、文字列 s 内のナル以外の文字数を返します。

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 に追加します。

char ∗jstrncpy(s1, s2, n)
char ∗s1, ∗s2;

strncpy の漢字バージョン。 jstrncpy は、 s2 を s1 にコピーします。 jstrncpy は、 s2 の切り捨てまたは s2 へのナルの埋込みを行って、 n 個の文字をコピーします。 s2 の長さが n またはそれ以上である場合には、コピーされた文字列はナルで終了しません。

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 を指し示すポインタを返します。 jrindex は、文字列 s 内にある最後の c を指し示すポインタを返します。

int btom(string, nbyte)  /∗ バイトから文字 ∗/
char ∗string;
int nbyte;

btom は、 string から string + nbyte まで、または終了のナルまでのどちらか短いほうの文字数を返します。 nbyte は、バイト数を表します。 string + nbyte が2バイトコードの2番目のバイトを指す場合には、 その文字はカウントには含まれません。 nbyte がゼロまたはそれより小さな場合には、ゼロを返します。

int mtob(string, nmoji)  /∗ 文字からバイト ∗/
char ∗string;
int nmoji;

mtob は、 string から nmoji 個の文字まで、 または終了のナルまでのどちらか短いほうのバイト数を 返します。

関連ファイル

/usr/include/jstrings.h
/lib/libc.a

関連事項

jctype(3J), string(3), setlocale(3)

NEWS-OSRelease 4.1C

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