Retorno de strcmp

raemca
17 de Diciembre del 2004
Buenas. Buscando en varios manuales de c cuál es el retorno de la función strcmp he encontrado dos cosillas:
en unos dice que retorna 0, 1 o -1 y en otros 0 o un valor positivo o negativo.
¿es posible que devuelva algún valor distino de 0,1 y -1? ¿Tal vez con el valor indica la posición en la que comienzan las diferencias entre las cadenas y con el signo se indica cuál es mayor o menos?
Gracias!!!
Un saludo, Rafa,

Hiei
17 de Diciembre del 2004
Las librerias estandar de C definen lo del valor positivo y negativo pero algunas implementaciones toman esto y lo interpretan como 1 y -1.
Supongo que con el cero no hay problema (a menos que a los estupidos matematicos se les ocurra decir que hay un cero posiivo y otro negativo)
En las implementaciones que he visto de strcmp se hae un bucle while mientras los datos de los punteros sean iguales y nunguno de estos apunte a 0.
Cuando termina (porque encontro una diferencia o un 0) retorna la resta de los caracteres apuntados. Es ovio que si los dos son 0 (tiene la misma extencion y no tienen diferencias en ninguna de sus partes) devolvera 0-0 y si hay alguna discrepancia devolveran la resta de estos dos numeros aunque... algunas implementaciones lo interpretan mal y devuelven -1 y 1 en lugar de esa resta...