strchr, strrchr, strchrnul -
文字列中の文字の位置を特定する
#include <string.h>
char *strchr(const char *s, int c);
char *strrchr(const char *s, int c);
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */
#include <string.h>
char *strchrnul(const char *s, int c);
strchr() 関数は、文字列
s 中に最初に文字
c
が現れた位置へのポインターを返す。
strrchr() 関数は、文字列
s 中に最後に文字
c
が現れた位置へのポインターを返す。
strchrnul() 関数は
strchr()
と同様だが、
c が
s
中に見つからなかった場合に、返り値として
NULL でなく、
s
の末尾のヌルバイトへのポインターを返す点が異なる。
ここでいう「文字」は「バイト」の意味なので、
これらの関数はワイド文字やマルチバイト文字では動作しない。
strchr() と
strrchr()
関数は一致した文字へのポインターを返し、もし
文字が見つからない場合は
NULL
を返す。終端のヌルバイトは文字列の一部と
みなされ、
c に '\0'
が指定された場合には、これらの関数は
終端のヌルバイトへのポインターを返す。
strchrnul()
関数は一致した文字へのポインターを返す。
文字が見つからない場合は、
s
の末尾のヌルバイトへの
ポインター (つまり
s+strlen(s)) を返す。
strchrnul() は glibc バージョン 2.1.1
で初めて登場した。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
strchr(), strrchr(), strchrnul() |
Thread safety |
MT-Safe |
strchr(),
strrchr(): POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4,
4.3BSD.
strchrnul() は GNU
による拡張である。
index(3),
memchr(3),
rindex(3),
string(3),
strlen(3),
strpbrk(3),
strsep(3),
strspn(3),
strstr(3),
strtok(3),
wcschr(3),
wcsrchr(3)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。