---
name: "SDL_strcasestr"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_strcasestr"
---

# SDL\_strcasestr(3)

Search a UTF-8 string for the first instance of a specific substring, case-insensitively.

## NAME

SDL\_strcasestr - Search a UTF-8 string for the first instance of a specific substring, case-insensitively.

## HEADER FILE

Defined in SDL3/SDL\_stdinc.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**char \* SDL\_strcasestr(const char \*haystack, const char \*needle);**

## DESCRIPTION

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.

## AVAILABILITY

This function is available since SDL 3.2.0.
