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 *)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#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]<CH2[I]) 
       r = 1 ; 
  else 
       r = 2 ; 
  return r; 
}