Exercice langage C: Indiquer la Précédence lexicographique
Travail à Faire:
Ecrire un programme qui lit deux chaînes de caractères, et qui indique leur précédence lexicographique dans le code de caractères de la machine (ici: code ASCII).
On écrira pour cela la fonction precedence qui récupère les deux chaînes en paramètre et qui retourne 1 si la première chaîne précède la deuxième, 2 si la deuxième précède la première, 0 si elles sont égale.
Prototype :
- int precedence(char *,char *)
#include
int precedence(char *,char *) ;
main()
{
/* Déclarations */
char CH1[50], CH2[50]; /* chaînes à comparer */
int r ;
/* Saisie des données */
printf("Entrez la première chaîne à comparer : ");
gets(CH1);
printf("Entrez la deuxième chaîne à comparer : ");
gets(CH2);
r = precedence (CH1,CH2) ;
if(r==0)
printf("\"%s\" est égal à \"%s\"\n", CH1, CH2);
else if (r == 1)
printf("\"%s\" précède \"%s\"\n", CH1, CH2);
else
printf("\"%s\" précède \"%s\"\n", CH2, CH1);
}
int precedence (char *CH1,char *CH2)
{
int I; /* indice courant */
int r ;
for (I=0; (CH1[I]==CH2[I]) && CH1[I] && CH2[I]; I++) ;
if (CH1[I]==CH2[I])
r = 0 ;
else if (CH1[I] r = 1 ;
else
r = 2 ;
return r;
}