SDL_strcasestr3
Search a utf-8 string for the first instance of a specific substring, case-insensitively.
Usage
#include "SDL3/SDL.h"
char * SDL_strcasestr(const char *haystack, const char *needle);
Header file
Defined in SDL3/SDL_stdinc.h
Overview
This will work with Unicode strings, using a technique called "case-folding" to handle the vast majority of case-sensitive human languages regardless of system locale. It can deal with expanding values: a German Eszett character can compare against two ASCII 's' chars and be considered a match, for example. A notable exception: it does not handle the Turkish 'i' character; human language is complicated!
Since this handles Unicode, it expects the strings to be well-formed UTF-8 and not a null-terminated string of arbitrary bytes. Bytes that are not valid UTF-8 are treated as Unicode character U+FFFD (REPLACEMENT CHARACTER), which is to say two strings of random bits may turn out to match if they convert to the same amount of replacement characters.
Function parameters
haystack
|
the string to search. Must not be NULL. |
|---|---|
needle
|
the string to search for. Must not be NULL. |
Return value
Returns a pointer to the first instance of needle in the string, or NULL if not found.
Thread safety
It is safe to call this function from any thread.