strncasecmp_l(3)

strncasecmp_l3

Compare strings, ignoring case

Part of strcasecmp(3).

Usage

#include <strings.h>

int

strcasecmp(const char *s1, const char *s2);

int

strncasecmp(const char *s1, const char *s2, size_t len);

#include <strings.h>

#include <xlocale.h>

int

strcasecmp_l(const char *s1, const char *s2, locale_t loc);

int

strncasecmp_l(const char *s1, const char *s2, size_t len, locale_t loc);

Library

Standard C Library (libc, -lc)

Overview

The strcasecmp() and strncasecmp() functions compare the null-terminated strings s1 and s2.

The strncasecmp() function compares at most len characters. The strcasecmp_l() and strncasecmp_l() functions do the same as their non-locale versions above, but take an explicit locale rather than using the current locale.

Return values

The functions strcasecmp() and strncasecmp() return an integer greater than, equal to, or less than 0, depending on whether s1 is lexicographically greater than, equal to, or less than s2 after translation of each corresponding character to lower-case. The strings themselves are not modified. The comparison is done using unsigned characters, so that ‘\200’ is greater than ‘\0’. The functions strcasecmp_l() and strncasecmp_l() do the same but take explicit locales.

Releases

33 releases since FreeBSD 9.1-RELEASE; the text changed 20 times.

  1. 9.1
  2. 9.2
  3. 9.3
  4. 10.0
  5. 10.1
  6. 10.2
  7. 10.3
  8. 10.4
  9. 11.0
  10. 11.1
  11. 11.2
  12. 11.3
  13. 11.4
  14. 12.0
  15. 12.1
  16. 12.2
  17. 12.3
  18. 12.4
  19. 13.0–13.2
  20. 13.3–14.5
  21. 15.0–16.0

History

The strcasecmp() and strncasecmp() functions first appeared in 4.4BSD. Their prototypes existed previously in ⟨string.h⟩ before they were moved to ⟨strings.h⟩ for IEEE Std 1003.1-2001 (“POSIX.1”) compliance.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.