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-decimal 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 numbers with fewer leading zeroes
(thus, the ordering would be "000", "00",
"01", "010", "09", "0",
"1", "9", "10").
SEE ALSO
STANDARDS
The strverscmp
() function is a GNU
extension and conforms to no standard.
HISTORY
The strverscmp
() function was added in
FreeBSD 13.2.