“Strlen (s1) - strlen (s2)” nunca es menor que cero
Actualmente estoy escribiendo un programa en C que requiere comparaciones frecuentes de longitudes de cadena, así que escribí la siguiente función auxiliar:
int strlonger(char *s1, char *s2) {
return strlen(s1) - strlen(s2) > 0;
}
Me he dado cuenta de que la función devuelve true incluso cuandos1
tiene una longitud más corta ques2
. ¿Puede alguien explicar este extraño comportamiento?