目次 - SDL 3.0 API(機能別) - 標準ライブラリ - SDL_strcasestr

SDL_strcasestr

UTF-8文字列から最初に一致する文字列を大文字小文字を無視して検索する

ヘッダ

SDL3/SDL_stdinc.h

構文

char * SDL_strcasestr(const char *haystack, const char *needle);

引数

const char *haystack検索される文字列. NULL不可
const char *needle検索する文字列. NULL不可

戻り値

(char *) needle文字列と最初に一致する箇所へのポインタを戻す. 見つからなかったときNULLを戻す.

詳細

この関数は, システムロケールに関わらず多くの自然言語を大文字小文字を無視して扱うために"case-folding"として知られる技術を用いている. これは多くの文字を扱える: 例えば, ドイツ語のエスツェット(ß)と2つのASCII文字's'(ss)を一致させるなどである. 注意すべき例外もある: これはトルコ語の'i'は扱えない. 自然言語は複雑である!

この関数のUnicodeの処理は, NUL終端の任意のバイト列の文字列ではなく, 正しいUTF-8文字列を想定している. UTF-8として有効でないバイトはUnicode文字のU+FFFD(置換文字)として扱われるため, 2つの文字列の異なるバイトが同じ長さの置換文字に変換され一致する可能性がある.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_strcasestr - SDL Wiki