SDL_wcsncasecmp(3)

πŸ’– SDL_wcsncasecmp πŸ’–

okay bestie, so this is a page from the SDL3 functions manual, and today's main character is SDL_wcsncasecmp β€” the girl who compares two wide strings, case-insensitively, up to a number of wchar_t. no cap. πŸŽ€


✨ SYNOPSIS ✨

#include <SDL3/SDL_stdinc.h>

int SDL_wcsncasecmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen);

🌸 DESCRIPTION 🌸

So here's the vibe: this function works with Unicode strings, using a technique called "case-folding" to handle the vast majority of case-sensitive human languages regardless of system locale. she's global, she's multilingual, she's that girl. πŸ’…

And the way she deals with expanding values?? iconic. a German Eszett character can compare against two ASCII 's' chars and be considered a match, for example. literally ate. πŸ”₯

⚠️ but there's a notable exception bestie: it does not handle the Turkish 'i' character. human language is complicated! 😭

Depending on your platform, "wchar_t" might be 2 bytes, and expected to be UTF-16 encoded (like Windows), or 4 bytes in UTF-32 format. Since this handles Unicode, it expects the string to be well-formed and not a null-terminated string of arbitrary bytes. Characters that are not valid UTF-16 (or UTF-32) 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. πŸ’€ yes really.

Also note that while this function might deal with variable-sized characters, maxlen specifies a _wchar_ limit! If the limit lands in the middle of a multi-byte UTF-16 sequence, it may convert a portion of the final character to one or more Unicode character U+FFFD (REPLACEMENT CHARACTER) so as not to overflow a buffer. safety first, always. 🫢

maxlen specifies a maximum number of wchar_t values to compare; if the strings match to this number of wchar_t (or both have matched to a null-terminator character before this number of bytes), they will be considered equal. periodt. ✨


πŸ‘‘ FUNCTION PARAMETERS πŸ‘‘

  • str1 β€” the first string to compare. NULL is not permitted! 🚫
  • str2 β€” the second string to compare. NULL is not permitted! 🚫
  • maxlen β€” the maximum number of wchar_t values to compare.

πŸ¦‹ RETURN VALUE πŸ¦‹

Returns less than zero if str1 is "less than" str2, greater than zero if str1 is "greater than" str2, and zero if the strings match exactly. three moods, one function. 🌈


🧚 THREAD SAFETY 🧚

It is safe to call this function from any thread. multithreaded queen fr fr. πŸ’œ


⭐ AVAILABILITY ⭐

This function is available since SDL 3.2.0.


and that's the whole page bestie!! πŸŽ€ this lil cutie came to you from the Simple Directmedia Layer crew, version SDL 3.4.18, and yeah β€” SDL_wcsncasecmp(3) is out here living her best life. go forth and compare your wide strings, ily, bye!! πŸ’–βœ¨πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from