Цель иметь три возвращаемых значения - это именно то, на что это похоже: ответить сразу на все вопросы о сравнении строк.
У всех разные потребности. Некоторые люди иногда нуждаются в простом тесте «меньше»; strncmp
обеспечивает это. Некоторые люди нуждаются в тестировании на равенство; strncmp
обеспечивает это. Некоторые люди действительно должны знать полную связь между двумя строками; strncmp
обеспечивает это.
Что вам абсолютно не нужно, так это кто-то пишет:
if(strless(lhs, rhs))
{
}
else if(strequal(lhs, rhs))
{
}
Это делает две потенциально дорогие операции сравнения. strless
также знает, равны ли они, потому что нужно было до конца обеих строк вернуть, чтобы оно было не меньше.
Да, и к вашему сведению: возвращаемые значения не -1 или +1; это больше нуля или меньше нуля. Или ноль, если они равны.