Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

strcmp() return values in C [duplicate]

Tags:

I am learning about strcmp() in C. I understand that when two strings are equal, strcmp returns 0.

However, when the man pages state that strcmp returns less than 0 when the first string is less than the second string, is it referring to length, ASCII values, or something else?

like image 422
dmubu Avatar asked Oct 05 '11 03:10

dmubu


2 Answers

In this sense, "less than" for strings means lexicographic (alphabetical) order.

So cat is less than dog because cat is alphabetically before dog.

Lexicographic order is, in some sense, an extension of alphabetical order to all ASCII (and UNICODE) characters.

like image 167
Mysticial Avatar answered Sep 23 '22 00:09

Mysticial


A value greater than zero indicates that the first character that does not match has a greater value in the first string than in the second, and a value less than zero indicates the opposite.

like image 25
JRL Avatar answered Sep 22 '22 00:09

JRL