¿Cómo funciona strcmp ()?
He estado buscando un poco por una respuesta. Voy a hacer una serie de mis propias funciones de cadena comomy_strcmp()
, my_strcat()
, etc.
Hacestrcmp()
trabajar a través de cada índice de dos matrices de caracteres y si el valor ASCII es menor en un índice idéntico de dos cadenas, esa cadena es alfabéticamente mayor y por lo tanto se devuelve un 0 o 1 o 2? Supongo que lo que pregunto es: ¿utiliza los valores ASCII de los caracteres para devolver estos resultados?
Cualquier ayuda sería muy apreciada.
[REVISADO]
OK, así que he encontrado esto ... funciona para todos los casos, excepto cuando la segunda cadena es mayor que la primera.
¿Algun consejo?
int my_strcmp(char s1[], char s2[])
{
int i = 0;
while ( s1[i] != '\0' )
{
if( s2[i] == '\0' ) { return 1; }
else if( s1[i] < s2[i] ) { return -1; }
else if( s1[i] > s2[i] ) { return 1; }
i++;
}
return 0;
}
int main (int argc, char *argv[])
{
int result = my_strcmp(argv[1], argv[2]);
printf("Value: %d \n", result);
return 0;
}