¿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;

}

Respuestas a la pregunta(9)

Su respuesta a la pregunta