#include <iostream>
using namespace std;
#define MAX_SIZE 100 // Maximo tamaño de la cadena
/* prototipo de la funcion compare */
int compare(char * str1, char * str2);
int main()
{
char str1[MAX_SIZE], str2[MAX_SIZE];
int res;
/* Ingresando las dos cadenas */
cout<<"Ingrese la primera cadena: ";
fgets(str1,sizeof str1,stdin);
cout<<"Ingrese la segunda cadena: ";
fgets(str2,sizeof str2,stdin);
/* LLama a la funcion compare para comparar cadenas */
res = compare(str1, str2);
if(res == 0)
{
cout<<"Ambas cadenas son iguales.";
}
else if(res < 0)
{
cout<<"La primera cadena es lexicograficamente mas pequeña que la segunda.";
}
else
{
cout<<"La primera cadena es lexicograficamente mayor que la segunda.";
}
return 0;
}
/**
* Compara las dos cadenas lexicograficamente
* Retorna 0 si ambas cadenas son iguales,
* negativa si la primera cadena es mas pequeña
* de otro modo retorna un valor positivo
*/
int compare(char * str1, char * str2)
{
int i = 0;
/* Iterar mientras que ambas cadenas sean iguales */
while(str1[i] == str2[i])
{
if(str1[i] == '\0' || str2[i] == '\0'){
break;
}
i++;
}
// Devuelve la diferencia de los caracteres actuales
return str1[i] - str2[i];
}