home | help
STRVERSCMP(3)		     Library Functions Manual		   STRVERSCMP(3)

NAME
     strverscmp -- compare strings according to natural order

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <string.h>

     int
     strverscmp(const char *s1, const char *s2);

DESCRIPTION
     The  strverscmp()	function  compares the null-terminated strings s1 and s2
     according to their natural order and returns an integer greater than, equal
     to, or less than 0, depending on whether s1 is greater than, equal  to,  or
     less than s2.

     More  specifically,  this	natural  order	is  found by iterating over both
     strings until a difference is found.  If the difference is between non-dec-
     imal characters, strverscmp() acts like strcmp(3) (thus, the ordering would
     be "a", "b", "train").  If a decimal digit is found, the  whole  number  is
     read  and	compared  (thus, the ordering would be "9", "10", "420" which is
     different to lexicographic order, what strcmp(3) would have done).  Numbers
     with leading zeroes are interpreted as fractional	parts  (even  without  a
     decimal point), and numbers with more leading zeroes are placed before num-
     bers  with  fewer	leading zeroes (thus, the ordering would be "000", "00",
     "01", "010", "09", "0", "1", "9", "10").

SEE ALSO
     strcmp(3), versionsort(3)

STANDARDS
     The strverscmp() function is a GNU extension and conforms to no standard.

HISTORY
     The strverscmp() function was added in FreeBSD 13.2.

FreeBSD 15.1			 August 31, 2023		   STRVERSCMP(3)

home | help