String comparison is a staple of most languages it seems, they all have a function that resembles C's `strcmp` to some extent. Its return value is usually described as such:

> 
> The strcmp() and strncmp() functions return an integer less than, equal to, or greater than zero if s1 (or the first n bytes thereof) is found, respectively, to be less than, to match, or be greater than s2.
> 
> 
> 

Pretty much all there is to take away from that is that if the result is 0 then the strings are equal (sharing identical contents) and if it's nonzero then no.

However, where does the nonzero int value come from if the strings are unequal? What does it mean? And what precisely does it mean for one string to be "greater than" or "less than" another, since they're not numeric values? 

Thank you for your time, I've never quite seen an explanation to string comparison functions other than explaining that 0 implies equality and nonzero implies inequality.