STRSEP

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

strsep - 文字列の分割  

索引

ライブラリ

Lb libc  

索引

書式

In string.h Ft char * Fn strsep char **stringp const char *delim  

索引

解説

Fn strsep 関数は、 Fa *stringp により参照される文字列の中で、文字列 Fa delim 中のいずれかの文字 (または終端の `\0' ) のうちで最初に出現する文字の位置を探し、その箇所を `\0' で置き換えます。 区切り文字 (または文字列の末尾に達した場合は NULL ) の次の文字の位置は、 Fa *stringp に格納されます。 Fa *stringp の元の値は戻り値となります。

「空」のフィールド、すなわち、 2 つの隣接する区切り文字によって生じたフィールドは、 Fa *stringp の中に返されたポインタが参照する位置を `\0' と比較することで検出可能です。

Fa *stringp が最初から NULL である場合は、 Fn strsep は NULL を返します。  

索引

以下では、 空白文字によって区切られたトークンで構成されている文字列を、 引数ベクタへと解釈するために Fn strsep を使っています。
char **ap, *argv[10], *inputstring;

for (ap = argv; (*ap = strsep(&inputstring, " \t")) != NULL;)
        if (**ap != '\0')
                if (++ap >= &argv[10])
                        break;
 

索引

関連項目

memchr(3), strchr(3), strcspn(3), strpbrk(3), strrchr(3), strspn(3), strstr(3), strtok(3)  

索引

歴史

Fn strsep 関数は、 Fn strtok 関数を置き換えるものとして考えられています。 Fn strtok 関数は移植性の点では好ましいのですが ( St -isoC に適合しています) 、 空のフィールドを扱う、すなわち、 2 つの隣接する区切り文字によって区切られたフィールドを検出するとか、 一回で複数の文字列に対して使用する、といったことができません。 Fn strsep 関数は、 BSD 4.4 で初めて登場しました。


 

索引

Index

名称
ライブラリ
書式
解説
関連項目
歴史

jman



Time: 07:07:10 GMT, January 12, 2009